[LLVMdev] safe to speculatively execute load of malloc?

Chris Lattner clattner at apple.com
Sun Jan 3 10:14:44 PST 2010


You're right, fixed in r92452.

-Chris

On Jan 3, 2010, at 4:54 AM, Jay Foad wrote:

> I've just noticed this, in Instruction::isSafeToSpeculativelyExecute():
> 
> http://llvm.org/doxygen/Instruction_8cpp-source.html#l00408
> 
> 00430   case Load: {
> 00431     if (cast<LoadInst>(this)->isVolatile())
> 00432       return false;
> 00433     if (isa<AllocaInst>(getOperand(0)) || isMalloc(getOperand(0)))
> 00434       return true;
> 
> This says that it's safe to speculatively execute a load from the
> pointer returned by malloc(). But surely that's not true if malloc()
> returns NULL.
> 
> Thanks,
> Jay.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list