diff --git a/llvm/lib/Transforms/Scalar/DCE.cpp b/llvm/lib/Transforms/Scalar/DCE.cpp --- a/llvm/lib/Transforms/Scalar/DCE.cpp +++ b/llvm/lib/Transforms/Scalar/DCE.cpp @@ -143,7 +143,7 @@ } PreservedAnalyses DCEPass::run(Function &F, FunctionAnalysisManager &AM) { - if (!eliminateDeadCode(F, AM.getCachedResult(F))) + if (!eliminateDeadCode(F, &AM.getResult(F))) return PreservedAnalyses::all(); PreservedAnalyses PA; @@ -162,13 +162,14 @@ if (skipFunction(F)) return false; - auto *TLIP = getAnalysisIfAvailable(); - TargetLibraryInfo *TLI = TLIP ? &TLIP->getTLI(F) : nullptr; + TargetLibraryInfo *TLI = + &getAnalysis().getTLI(F); return eliminateDeadCode(F, TLI); } void getAnalysisUsage(AnalysisUsage &AU) const override { + AU.addRequired(); AU.setPreservesCFG(); } }; diff --git a/llvm/test/Transforms/DCE/calls-errno.ll b/llvm/test/Transforms/DCE/calls-errno.ll --- a/llvm/test/Transforms/DCE/calls-errno.ll +++ b/llvm/test/Transforms/DCE/calls-errno.ll @@ -1,4 +1,5 @@ ; RUN: opt < %s -dce -S | FileCheck %s +; RUN: opt < %s -passes=dce -S | FileCheck %s declare double @acos(double) nounwind declare double @asin(double) nounwind