diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar/ADCE.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/ADCE.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Scalar/ADCE.cpp b/llvm/lib/Transforms/Scalar/ADCE.cpp index 09cf77a0c08..1c9160e2869 100644 --- a/llvm/lib/Transforms/Scalar/ADCE.cpp +++ b/llvm/lib/Transforms/Scalar/ADCE.cpp @@ -146,9 +146,14 @@ static bool aggressiveDCE(Function& F) { } PreservedAnalyses ADCEPass::run(Function &F) { - if (aggressiveDCE(F)) - return PreservedAnalyses::none(); - return PreservedAnalyses::all(); + if (!aggressiveDCE(F)) + return PreservedAnalyses::all(); + + // FIXME: ADCE 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 { |

