[LLVMdev] safe to speculatively execute load of malloc?
Jay Foad
jay.foad at gmail.com
Sun Jan 3 04:54:23 PST 2010
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.
More information about the llvm-dev
mailing list