From dff6710717b159f089c76a07eda074eb6347eb92 Mon Sep 17 00:00:00 2001 From: Duncan Sands Date: Sat, 1 Dec 2007 07:51:45 +0000 Subject: Integrate the readonly/readnone logic more deeply into alias analysis. This meant updating the API which now has versions of the getModRefBehavior, doesNotAccessMemory and onlyReadsMemory methods which take a callsite parameter. These should be used unless the callsite is not known, since in general they can do a better job than the versions that take a function. Also, users should no longer call the version of getModRefBehavior that takes both a function and a callsite. To reduce the chance of misuse it is now protected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44487 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/ADCE.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'lib/Transforms/Scalar/ADCE.cpp') diff --git a/lib/Transforms/Scalar/ADCE.cpp b/lib/Transforms/Scalar/ADCE.cpp index e3bd362..7f37334 100644 --- a/lib/Transforms/Scalar/ADCE.cpp +++ b/lib/Transforms/Scalar/ADCE.cpp @@ -198,8 +198,7 @@ bool ADCE::doADCE() { for (BasicBlock::iterator II = BB->begin(), EI = BB->end(); II != EI; ) { Instruction *I = II++; if (CallInst *CI = dyn_cast(I)) { - Function *F = CI->getCalledFunction(); - if (F && AA.onlyReadsMemory(F)) { + if (AA.onlyReadsMemory(CI)) { if (CI->use_empty()) { BB->getInstList().erase(CI); ++NumCallRemoved; -- cgit v1.1