diff options
| author | bors <bors@rust-lang.org> | 2020-05-16 22:16:48 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-05-16 22:16:48 +0000 |
| commit | 0ec4b065243f38f711a55563bff7d0c66eea1b4a (patch) | |
| tree | 0f0ee4d5dc2dea274c840a515f39d4348fa82cc8 /src/rustllvm/PassWrapper.cpp | |
| parent | dd927a5b0f29342f7ad919fb52ca29510d2e7362 (diff) | |
| parent | bbb63d4554b03feee481bc799a04f183abaff1d4 (diff) | |
| download | rust-0ec4b065243f38f711a55563bff7d0c66eea1b4a.tar.gz rust-0ec4b065243f38f711a55563bff7d0c66eea1b4a.zip | |
Auto merge of #72178 - tmiasko:inliner-lifetimes, r=nikic
Consistently use LLVM lifetime markers during codegen Ensure that inliner inserts lifetime markers if they have been emitted during codegen. Otherwise if allocas from inlined functions are merged together, lifetime markers from one function might invalidate load & stores performed by the other one. Fixes #72154.
Diffstat (limited to 'src/rustllvm/PassWrapper.cpp')
| -rw-r--r-- | src/rustllvm/PassWrapper.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp index 84bde9a52f7..b17fa57c5c1 100644 --- a/src/rustllvm/PassWrapper.cpp +++ b/src/rustllvm/PassWrapper.cpp @@ -717,7 +717,7 @@ LLVMRustOptimizeWithNewPassManager( LLVMRustOptStage OptStage, bool NoPrepopulatePasses, bool VerifyIR, bool UseThinLTOBuffers, bool MergeFunctions, bool UnrollLoops, bool SLPVectorize, bool LoopVectorize, - bool DisableSimplifyLibCalls, + bool DisableSimplifyLibCalls, bool EmitLifetimeMarkers, LLVMRustSanitizerOptions *SanitizerOptions, const char *PGOGenPath, const char *PGOUsePath, void* LlvmSelfProfiler, @@ -853,7 +853,7 @@ LLVMRustOptimizeWithNewPassManager( MPM.addPass(createModuleToFunctionPassAdaptor(std::move(FPM))); } - MPM.addPass(AlwaysInlinerPass(/*InsertLifetimeIntrinsics=*/false)); + MPM.addPass(AlwaysInlinerPass(EmitLifetimeMarkers)); #if LLVM_VERSION_GE(10, 0) if (PGOOpt) { |
