[llvm-commits] [llvm] r159440 - /llvm/trunk/lib/Transforms/Utils/Local.cpp

Duncan Sands baldrick at free.fr
Fri Jun 29 14:40:05 PDT 2012


Hi Nuno,

> ignore 'invoke new' in isInstructionTriviallyDead, since most callers are not ready to handle invokes. instcombine will take care of this.

> --- llvm/trunk/lib/Transforms/Utils/Local.cpp (original)
> +++ llvm/trunk/lib/Transforms/Utils/Local.cpp Fri Jun 29 12:37:07 2012
> @@ -265,7 +265,8 @@
>         return isa<UndefValue>(II->getArgOperand(1));
>     }
>
> -  if (isAllocLikeFn(I)) return true;
> +  if (isAllocLikeFn(I))
> +    return isa<CallInst>(I); // do not mess around with invoke here
>
>     if (CallInst *CI = isFreeCall(I))
>       if (Constant *C = dyn_cast<Constant>(CI->getArgOperand(0)))
>

this isn't needed, since isInstructionTriviallyDead bails out on
invokes right at the start:

bool llvm::isInstructionTriviallyDead(Instruction *I) {
   if (!I->use_empty() || isa<TerminatorInst>(I)) return false;

Ciao, Duncan.



More information about the llvm-commits mailing list