[llvm-commits] [llvm] r158937 - in /llvm/trunk: include/llvm/Analysis/MemoryBuiltins.h lib/Analysis/MemoryBuiltins.cpp lib/Transforms/InstCombine/InstCombineCalls.cpp lib/Transforms/InstCombine/InstructionCombining.cpp test/Transforms/InstCombine/objsize-64.ll
Duncan Sands
baldrick at free.fr
Fri Jun 22 00:54:31 PDT 2012
Hi Nuno,
> --- llvm/trunk/lib/Analysis/MemoryBuiltins.cpp (original)
> +++ llvm/trunk/lib/Analysis/MemoryBuiltins.cpp Thu Jun 21 16:25:05 2012
> @@ -65,11 +65,17 @@
> static Function *getCalledFunction(const Value *V, bool LookThroughBitCast) {
> if (LookThroughBitCast)
> V = V->stripPointerCasts();
> - const CallInst *CI = dyn_cast<CallInst>(V);
> - if (!CI)
> +
> + Value *I = const_cast<Value*>(V);
> + CallSite CS;
> + if (CallInst *CI = dyn_cast<CallInst>(I))
> + CS = CallSite(CI);
> + else if (InvokeInst *II = dyn_cast<InvokeInst>(I))
> + CS = CallSite(II);
> + else
> return 0;
you should be able to do something like this:
CallSite CS(I);
if (!CS.getInstruction())
return 0;
>
> - Function *Callee = CI->getCalledFunction();
> + Function *Callee = CS.getCalledFunction();
> if (!Callee || !Callee->isDeclaration())
> return 0;
> return Callee;
> --- llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp (original)
> +++ llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp Thu Jun 21 16:25:05 2012
> @@ -1167,6 +1167,10 @@
> }
> EraseInstFromFunction(*I);
> }
> +
> + if (InvokeInst *II = dyn_cast<InvokeInst>(&MI)) {
> + BranchInst::Create(II->getNormalDest(), II->getParent());
> + }
Style: no need for {} here.
Ciao, Duncan.
More information about the llvm-commits
mailing list