diff options
author | Davide Italiano <davide@freebsd.org> | 2016-05-31 17:53:22 +0000 |
---|---|---|
committer | Davide Italiano <davide@freebsd.org> | 2016-05-31 17:53:22 +0000 |
commit | bdc2971434479d7c8e461959b7abb61cb04edd70 (patch) | |
tree | 963a4f67fbfe3f10eeb705c853a88f808a5236bf /llvm/lib/Transforms/Scalar/BDCE.cpp | |
parent | 6896d3ec5eb34627c1571ddf047d848ef0338997 (diff) | |
download | bcm5719-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/Scalar/BDCE.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/BDCE.cpp | 11 |
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 { |