diff --git a/src/comp/lib/llvm.rs b/src/comp/lib/llvm.rs index 62ad92ac380f..4def2d116bc1 100644 --- a/src/comp/lib/llvm.rs +++ b/src/comp/lib/llvm.rs @@ -571,7 +571,6 @@ native "cdecl" mod llvm = "rustllvm" { fn LLVMBuildInvoke(B: BuilderRef, Fn: ValueRef, Args: *ValueRef, NumArgs: uint, Then: BasicBlockRef, Catch: BasicBlockRef, Name: sbuf) -> ValueRef; - fn LLVMBuildUnwind(B: BuilderRef) -> ValueRef; fn LLVMBuildUnreachable(B: BuilderRef) -> ValueRef; /* Add a case to the switch instruction */ @@ -949,12 +948,6 @@ obj builder(B: BuilderRef, terminated: @mutable bool, Then, Catch, str::buf("")); } - fn Unwind() -> ValueRef { - assert (!*terminated); - *terminated = true; - ret llvm::LLVMBuildUnwind(B); - } - fn Unreachable() -> ValueRef { assert (!*terminated); *terminated = true; diff --git a/src/rustllvm/Passes.cpp b/src/rustllvm/Passes.cpp index dcc549b511f6..4aaffe89eea9 100644 --- a/src/rustllvm/Passes.cpp +++ b/src/rustllvm/Passes.cpp @@ -1,5 +1,6 @@ #include "llvm/Analysis/Passes.h" -#include "llvm/Support/PassManagerBuilder.h" +#include "llvm/Transforms/IPO/PassManagerBuilder.h" +#include "llvm/Transforms/IPO.h" #include "llvm/PassManager.h" #include "llvm-c/Core.h" #include diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 819b3e0f0802..d953295803b9 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -79,15 +79,16 @@ extern "C" void LLVMRustWriteOutputFile(LLVMPassManagerRef PMR, llvm::NoFramePointerElim = true; InitializeAllTargets(); + InitializeAllTargetMCs(); InitializeAllAsmPrinters(); InitializeAllAsmParsers(); - TargetMachine::setRelocationModel(Reloc::PIC_); std::string Err; const Target *TheTarget = TargetRegistry::lookupTarget(triple, Err); std::string FeaturesStr; std::string Trip(triple); std::string CPUStr = llvm::sys::getHostCPUName(); - TargetMachine *Target = TheTarget->createTargetMachine(Trip, CPUStr, FeaturesStr); + TargetMachine *Target = + TheTarget->createTargetMachine(Trip, CPUStr, FeaturesStr, Reloc::PIC_); bool NoVerify = false; PassManager *PM = unwrap(PMR); std::string ErrorInfo; diff --git a/src/rustllvm/rustllvm.def.in b/src/rustllvm/rustllvm.def.in index 19e58eec5036..545fd7f6f74f 100644 --- a/src/rustllvm/rustllvm.def.in +++ b/src/rustllvm/rustllvm.def.in @@ -165,7 +165,6 @@ LLVMBuildUDiv LLVMBuildUIToFP LLVMBuildURem LLVMBuildUnreachable -LLVMBuildUnwind LLVMBuildVAArg LLVMBuildXor LLVMBuildZExt @@ -429,7 +428,6 @@ LLVMInt8TypeInContext LLVMIntPtrType LLVMIntType LLVMIntTypeInContext -LLVMInvalidateStructLayout LLVMIsAAllocaInst LLVMIsAArgument LLVMIsABasicBlock