diff options
author | Alina Sbirlea <asbirlea@google.com> | 2019-05-08 17:05:36 +0000 |
---|---|---|
committer | Alina Sbirlea <asbirlea@google.com> | 2019-05-08 17:05:36 +0000 |
commit | f31eba649422082783a19bb6b373f31f10f55de9 (patch) | |
tree | b0f73d40cc275dfaacb603f9987a26247249d11a /llvm/lib/Transforms/Utils/Local.cpp | |
parent | 9f15718b3dd405adb2477a121e1030a0e81d00fd (diff) | |
download | bcm5719-llvm-f31eba649422082783a19bb6b373f31f10f55de9.tar.gz bcm5719-llvm-f31eba649422082783a19bb6b373f31f10f55de9.zip |
[MemorySSA] Teach LoopSimplify to preserve MemorySSA.
Summary:
Preserve MemorySSA in LoopSimplify, in the old pass manager, if the analysis is available.
Do not preserve it in the new pass manager.
Update tests.
Subscribers: nemanjai, jlebar, javed.absar, Prazek, kbarton, zzheng, jsji, llvm-commits, george.burgess.iv, chandlerc
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D60833
llvm-svn: 360270
Diffstat (limited to 'llvm/lib/Transforms/Utils/Local.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/Local.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index 65d5928e99c..f9dc09e88e9 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -1894,10 +1894,14 @@ unsigned llvm::removeAllNonTerminatorAndEHPadInstructions(BasicBlock *BB) { } unsigned llvm::changeToUnreachable(Instruction *I, bool UseLLVMTrap, - bool PreserveLCSSA, DomTreeUpdater *DTU) { + bool PreserveLCSSA, DomTreeUpdater *DTU, + MemorySSAUpdater *MSSAU) { BasicBlock *BB = I->getParent(); std::vector <DominatorTree::UpdateType> Updates; + if (MSSAU) + MSSAU->changeToUnreachable(I); + // Loop over all of the successors, removing BB's entry from any PHI // nodes. if (DTU) |