diff options
author | Alina Sbirlea <asbirlea@google.com> | 2019-06-11 18:27:49 +0000 |
---|---|---|
committer | Alina Sbirlea <asbirlea@google.com> | 2019-06-11 18:27:49 +0000 |
commit | 3cef1f7d64f29fab5c8d0ce9abf0fa98c75a3c10 (patch) | |
tree | a0454831a68aedf8228db5bc20d91302a5f1c084 /llvm/lib/Transforms/Scalar/LoopRotation.cpp | |
parent | e20865c387e09ea0ebd5add15c762cd5271ff65f (diff) | |
download | bcm5719-llvm-3cef1f7d64f29fab5c8d0ce9abf0fa98c75a3c10.tar.gz bcm5719-llvm-3cef1f7d64f29fab5c8d0ce9abf0fa98c75a3c10.zip |
Only passes that preserve MemorySSA must mark it as preserved.
Summary:
The method `getLoopPassPreservedAnalyses` should not mark MemorySSA as
preserved, because it's being called in a lot of passes that do not
preserve MemorySSA.
Instead, mark the MemorySSA analysis as preserved by each pass that does
preserve it.
These changes only affect the new pass mananger.
Reviewers: chandlerc
Subscribers: mehdi_amini, jlebar, Prazek, george.burgess.iv, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62536
llvm-svn: 363091
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopRotation.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopRotation.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopRotation.cpp b/llvm/lib/Transforms/Scalar/LoopRotation.cpp index f9d78404998..e009947690a 100644 --- a/llvm/lib/Transforms/Scalar/LoopRotation.cpp +++ b/llvm/lib/Transforms/Scalar/LoopRotation.cpp @@ -54,7 +54,10 @@ PreservedAnalyses LoopRotatePass::run(Loop &L, LoopAnalysisManager &AM, if (AR.MSSA && VerifyMemorySSA) AR.MSSA->verifyMemorySSA(); - return getLoopPassPreservedAnalyses(); + auto PA = getLoopPassPreservedAnalyses(); + if (EnableMSSALoopDependency) + PA.preserve<MemorySSAAnalysis>(); + return PA; } namespace { |