summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2016-05-31 17:53:22 +0000
committerDavide Italiano <davide@freebsd.org>2016-05-31 17:53:22 +0000
commitbdc2971434479d7c8e461959b7abb61cb04edd70 (patch)
tree963a4f67fbfe3f10eeb705c853a88f808a5236bf /llvm/lib/Transforms
parent6896d3ec5eb34627c1571ddf047d848ef0338997 (diff)
downloadbcm5719-llvm-bdc2971434479d7c8e461959b7abb61cb04edd70.tar.gz
bcm5719-llvm-bdc2971434479d7c8e461959b7abb61cb04edd70.zip
[PM] BDCE: Fix caching of analyses.
Another chapter in the story. GlobalsAA should be preserved, as well as the CFG. llvm-svn: 271307
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Scalar/BDCE.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Scalar/BDCE.cpp b/llvm/lib/Transforms/Scalar/BDCE.cpp
index a1331ddf44a..e2587f94e44 100644
--- a/llvm/lib/Transforms/Scalar/BDCE.cpp
+++ b/llvm/lib/Transforms/Scalar/BDCE.cpp
@@ -71,9 +71,14 @@ static bool bitTrackingDCE(Function &F, DemandedBits &DB) {
PreservedAnalyses BDCEPass::run(Function &F, FunctionAnalysisManager &AM) {
auto &DB = AM.getResult<DemandedBitsAnalysis>(F);
- if (bitTrackingDCE(F, DB))
- return PreservedAnalyses::none();
- return PreservedAnalyses::all();
+ if (!bitTrackingDCE(F, DB))
+ return PreservedAnalyses::all();
+
+ // FIXME: BDCE should also 'preserve the CFG'.
+ // The new pass manager has currently no way to do it.
+ auto PA = PreservedAnalyses();
+ PA.preserve<GlobalsAA>();
+ return PA;
}
namespace {
OpenPOWER on IntegriCloud