diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2018-11-05 14:52:08 +0100 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2018-11-05 15:04:26 +0100 |
| commit | 3cc8b17451aac4a144baa48bb48f4187a5529769 (patch) | |
| tree | 441ffae2eddb2da1aad6e69edf73037462cb678b /src/librustc_codegen_llvm | |
| parent | 6cfc6033955dd2685dfa7baeec6f6bc3bfdfe2f1 (diff) | |
| download | rust-3cc8b17451aac4a144baa48bb48f4187a5529769.tar.gz rust-3cc8b17451aac4a144baa48bb48f4187a5529769.zip | |
Remove support for building against LLVM 4
With emscripten removed in #55626, we no longer need to support building against LLVM 4.
Diffstat (limited to 'src/librustc_codegen_llvm')
| -rw-r--r-- | src/librustc_codegen_llvm/back/lto.rs | 4 | ||||
| -rw-r--r-- | src/librustc_codegen_llvm/builder.rs | 57 | ||||
| -rw-r--r-- | src/librustc_codegen_llvm/llvm/ffi.rs | 24 |
3 files changed, 26 insertions, 59 deletions
diff --git a/src/librustc_codegen_llvm/back/lto.rs b/src/librustc_codegen_llvm/back/lto.rs index 8f940e0d22a..f04dde26e07 100644 --- a/src/librustc_codegen_llvm/back/lto.rs +++ b/src/librustc_codegen_llvm/back/lto.rs @@ -595,9 +595,7 @@ fn run_pass_manager(cgcx: &CodegenContext, }; with_llvm_pmb(llmod, config, opt_level, false, &mut |b| { if thin { - if !llvm::LLVMRustPassManagerBuilderPopulateThinLTOPassManager(b, pm) { - panic!("this version of LLVM does not support ThinLTO"); - } + llvm::LLVMRustPassManagerBuilderPopulateThinLTOPassManager(b, pm); } else { llvm::LLVMPassManagerBuilderPopulateLTOPassManager(b, pm, /* Internalize = */ False, diff --git a/src/librustc_codegen_llvm/builder.rs b/src/librustc_codegen_llvm/builder.rs index 2fe6a0377f8..129305963c6 100644 --- a/src/librustc_codegen_llvm/builder.rs +++ b/src/librustc_codegen_llvm/builder.rs @@ -859,8 +859,7 @@ impl Builder<'a, 'll, 'tcx> { // FIXME: add a non-fast math version once // https://bugs.llvm.org/show_bug.cgi?id=36732 // is fixed. - let instr = llvm::LLVMRustBuildVectorReduceFAdd(self.llbuilder, acc, src) - .expect("LLVMRustBuildVectorReduceFAdd is not available in LLVM version < 5.0"); + let instr = llvm::LLVMRustBuildVectorReduceFAdd(self.llbuilder, acc, src); llvm::LLVMRustSetHasUnsafeAlgebra(instr); instr } @@ -871,66 +870,43 @@ impl Builder<'a, 'll, 'tcx> { // FIXME: add a non-fast math version once // https://bugs.llvm.org/show_bug.cgi?id=36732 // is fixed. - let instr = llvm::LLVMRustBuildVectorReduceFMul(self.llbuilder, acc, src) - .expect("LLVMRustBuildVectorReduceFMul is not available in LLVM version < 5.0"); + let instr = llvm::LLVMRustBuildVectorReduceFMul(self.llbuilder, acc, src); llvm::LLVMRustSetHasUnsafeAlgebra(instr); instr } } pub fn vector_reduce_add(&self, src: &'ll Value) -> &'ll Value { self.count_insn("vector.reduce.add"); - unsafe { - let instr = llvm::LLVMRustBuildVectorReduceAdd(self.llbuilder, src); - instr.expect("LLVMRustBuildVectorReduceAdd is not available in LLVM version < 5.0") - } + unsafe { llvm::LLVMRustBuildVectorReduceAdd(self.llbuilder, src) } } pub fn vector_reduce_mul(&self, src: &'ll Value) -> &'ll Value { self.count_insn("vector.reduce.mul"); - unsafe { - let instr = llvm::LLVMRustBuildVectorReduceMul(self.llbuilder, src); - instr.expect("LLVMRustBuildVectorReduceMul is not available in LLVM version < 5.0") - } + unsafe { llvm::LLVMRustBuildVectorReduceMul(self.llbuilder, src) } } pub fn vector_reduce_and(&self, src: &'ll Value) -> &'ll Value { self.count_insn("vector.reduce.and"); - unsafe { - let instr = llvm::LLVMRustBuildVectorReduceAnd(self.llbuilder, src); - instr.expect("LLVMRustBuildVectorReduceAnd is not available in LLVM version < 5.0") - } + unsafe { llvm::LLVMRustBuildVectorReduceAnd(self.llbuilder, src) } } pub fn vector_reduce_or(&self, src: &'ll Value) -> &'ll Value { self.count_insn("vector.reduce.or"); - unsafe { - let instr = llvm::LLVMRustBuildVectorReduceOr(self.llbuilder, src); - instr.expect("LLVMRustBuildVectorReduceOr is not available in LLVM version < 5.0") - } + unsafe { llvm::LLVMRustBuildVectorReduceOr(self.llbuilder, src) } } pub fn vector_reduce_xor(&self, src: &'ll Value) -> &'ll Value { self.count_insn("vector.reduce.xor"); - unsafe { - let instr = llvm::LLVMRustBuildVectorReduceXor(self.llbuilder, src); - instr.expect("LLVMRustBuildVectorReduceXor is not available in LLVM version < 5.0") - } + unsafe { llvm::LLVMRustBuildVectorReduceXor(self.llbuilder, src) } } pub fn vector_reduce_fmin(&self, src: &'ll Value) -> &'ll Value { self.count_insn("vector.reduce.fmin"); - unsafe { - let instr = llvm::LLVMRustBuildVectorReduceFMin(self.llbuilder, src, /*NoNaNs:*/ false); - instr.expect("LLVMRustBuildVectorReduceFMin is not available in LLVM version < 5.0") - } + unsafe { llvm::LLVMRustBuildVectorReduceFMin(self.llbuilder, src, /*NoNaNs:*/ false) } } pub fn vector_reduce_fmax(&self, src: &'ll Value) -> &'ll Value { self.count_insn("vector.reduce.fmax"); - unsafe { - let instr = llvm::LLVMRustBuildVectorReduceFMax(self.llbuilder, src, /*NoNaNs:*/ false); - instr.expect("LLVMRustBuildVectorReduceFMax is not available in LLVM version < 5.0") - } + unsafe { llvm::LLVMRustBuildVectorReduceFMax(self.llbuilder, src, /*NoNaNs:*/ false) } } pub fn vector_reduce_fmin_fast(&self, src: &'ll Value) -> &'ll Value { self.count_insn("vector.reduce.fmin_fast"); unsafe { - let instr = llvm::LLVMRustBuildVectorReduceFMin(self.llbuilder, src, /*NoNaNs:*/ true) - .expect("LLVMRustBuildVectorReduceFMin is not available in LLVM version < 5.0"); + let instr = llvm::LLVMRustBuildVectorReduceFMin(self.llbuilder, src, /*NoNaNs:*/ true); llvm::LLVMRustSetHasUnsafeAlgebra(instr); instr } @@ -938,25 +914,18 @@ impl Builder<'a, 'll, 'tcx> { pub fn vector_reduce_fmax_fast(&self, src: &'ll Value) -> &'ll Value { self.count_insn("vector.reduce.fmax_fast"); unsafe { - let instr = llvm::LLVMRustBuildVectorReduceFMax(self.llbuilder, src, /*NoNaNs:*/ true) - .expect("LLVMRustBuildVectorReduceFMax is not available in LLVM version < 5.0"); + let instr = llvm::LLVMRustBuildVectorReduceFMax(self.llbuilder, src, /*NoNaNs:*/ true); llvm::LLVMRustSetHasUnsafeAlgebra(instr); instr } } pub fn vector_reduce_min(&self, src: &'ll Value, is_signed: bool) -> &'ll Value { self.count_insn("vector.reduce.min"); - unsafe { - let instr = llvm::LLVMRustBuildVectorReduceMin(self.llbuilder, src, is_signed); - instr.expect("LLVMRustBuildVectorReduceMin is not available in LLVM version < 5.0") - } + unsafe { llvm::LLVMRustBuildVectorReduceMin(self.llbuilder, src, is_signed) } } pub fn vector_reduce_max(&self, src: &'ll Value, is_signed: bool) -> &'ll Value { self.count_insn("vector.reduce.max"); - unsafe { - let instr = llvm::LLVMRustBuildVectorReduceMax(self.llbuilder, src, is_signed); - instr.expect("LLVMRustBuildVectorReduceMax is not available in LLVM version < 5.0") - } + unsafe { llvm::LLVMRustBuildVectorReduceMax(self.llbuilder, src, is_signed) } } pub fn extract_value(&self, agg_val: &'ll Value, idx: u64) -> &'ll Value { diff --git a/src/librustc_codegen_llvm/llvm/ffi.rs b/src/librustc_codegen_llvm/llvm/ffi.rs index 12d4670e4be..9a4b94eda7a 100644 --- a/src/librustc_codegen_llvm/llvm/ffi.rs +++ b/src/librustc_codegen_llvm/llvm/ffi.rs @@ -1041,42 +1041,42 @@ extern "C" { pub fn LLVMRustBuildVectorReduceFAdd(B: &Builder<'a>, Acc: &'a Value, Src: &'a Value) - -> Option<&'a Value>; + -> &'a Value; pub fn LLVMRustBuildVectorReduceFMul(B: &Builder<'a>, Acc: &'a Value, Src: &'a Value) - -> Option<&'a Value>; + -> &'a Value; pub fn LLVMRustBuildVectorReduceAdd(B: &Builder<'a>, Src: &'a Value) - -> Option<&'a Value>; + -> &'a Value; pub fn LLVMRustBuildVectorReduceMul(B: &Builder<'a>, Src: &'a Value) - -> Option<&'a Value>; + -> &'a Value; pub fn LLVMRustBuildVectorReduceAnd(B: &Builder<'a>, Src: &'a Value) - -> Option<&'a Value>; + -> &'a Value; pub fn LLVMRustBuildVectorReduceOr(B: &Builder<'a>, Src: &'a Value) - -> Option<&'a Value>; + -> &'a Value; pub fn LLVMRustBuildVectorReduceXor(B: &Builder<'a>, Src: &'a Value) - -> Option<&'a Value>; + -> &'a Value; pub fn LLVMRustBuildVectorReduceMin(B: &Builder<'a>, Src: &'a Value, IsSigned: bool) - -> Option<&'a Value>; + -> &'a Value; pub fn LLVMRustBuildVectorReduceMax(B: &Builder<'a>, Src: &'a Value, IsSigned: bool) - -> Option<&'a Value>; + -> &'a Value; pub fn LLVMRustBuildVectorReduceFMin(B: &Builder<'a>, Src: &'a Value, IsNaN: bool) - -> Option<&'a Value>; + -> &'a Value; pub fn LLVMRustBuildVectorReduceFMax(B: &Builder<'a>, Src: &'a Value, IsNaN: bool) - -> Option<&'a Value>; + -> &'a Value; pub fn LLVMRustBuildMinNum( B: &Builder<'a>, @@ -1157,7 +1157,7 @@ extern "C" { RunInliner: Bool); pub fn LLVMRustPassManagerBuilderPopulateThinLTOPassManager( PMB: &PassManagerBuilder, - PM: &PassManager) -> bool; + PM: &PassManager); // Stuff that's in rustllvm/ because it's not upstream yet. |
