diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-03-28 16:47:33 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-04-10 18:49:51 -0700 |
| commit | a34948a2c5d7cd296abda6970652a9513d67feb7 (patch) | |
| tree | bc485ce2e6e6ed416a08412edd85085a16211f93 /src/rustllvm/RustWrapper.cpp | |
| parent | 344628fe91ffa0fad32bc5b3eee3e6b4b48c9990 (diff) | |
| download | rust-a34948a2c5d7cd296abda6970652a9513d67feb7.tar.gz rust-a34948a2c5d7cd296abda6970652a9513d67feb7.zip | |
rustllvm: Initialize target analysis passes
Without this the target info for certain optimizations will not be created and the compiler will sometimes crash
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
| -rw-r--r-- | src/rustllvm/RustWrapper.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 68483b0280f..5d422b2d2ed 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -452,6 +452,8 @@ LLVMRustWriteOutputFile(LLVMPassManagerRef PMR, Options.NoFramePointerElim = true; Options.EnableSegmentedStacks = EnableSegmentedStacks; + PassManager *PM = unwrap<PassManager>(PMR); + std::string Err; std::string Trip(Triple::normalize(triple)); std::string FeaturesStr; @@ -461,8 +463,9 @@ LLVMRustWriteOutputFile(LLVMPassManagerRef PMR, TheTarget->createTargetMachine(Trip, CPUStr, FeaturesStr, Options, Reloc::PIC_, CodeModel::Default, OptLevel); + Target->addAnalysisPasses(*PM); + bool NoVerify = false; - PassManager *PM = unwrap<PassManager>(PMR); std::string ErrorInfo; raw_fd_ostream OS(path, ErrorInfo, raw_fd_ostream::F_Binary); |
