aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Scalar/Reassociate.cpp
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2016-05-29 00:41:17 +0000
committerDavide Italiano <davide@freebsd.org>2016-05-29 00:41:17 +0000
commit39893bd41c210ec6428d5a13124613716a0d52b1 (patch)
treecc1ada3e0029585d629c0b5c28bffb7d2b6daf79 /llvm/lib/Transforms/Scalar/Reassociate.cpp
parent7066905ef30869f55a3998638ec8847814310f4f (diff)
downloadllvm-39893bd41c210ec6428d5a13124613716a0d52b1.zip
llvm-39893bd41c210ec6428d5a13124613716a0d52b1.tar.gz
llvm-39893bd41c210ec6428d5a13124613716a0d52b1.tar.bz2
[PM] Reassociate: cache analyses more aggressively.
While here, add a FIXME for setPreserveCFG(). llvm-svn: 271159
Diffstat (limited to 'llvm/lib/Transforms/Scalar/Reassociate.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/Reassociate.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/Reassociate.cpp b/llvm/lib/Transforms/Scalar/Reassociate.cpp
index 6b761c5..75f646d 100644
--- a/llvm/lib/Transforms/Scalar/Reassociate.cpp
+++ b/llvm/lib/Transforms/Scalar/Reassociate.cpp
@@ -2227,8 +2227,13 @@ PreservedAnalyses ReassociatePass::run(Function &F) {
RankMap.clear();
ValueRankMap.clear();
- if (MadeChange)
- return PreservedAnalyses::none();
+ if (MadeChange) {
+ // FIXME: Reassociate should also 'preserve the CFG'.
+ // The new pass manager has currently no way to do it.
+ auto PA = PreservedAnalyses();
+ PA.preserve<GlobalsAA>();
+ return PA;
+ }
return PreservedAnalyses::all();
}