[LLVMdev] isSafeToSpeculativelyExecute() for CallInst

Nadav Rotem nrotem at apple.com
Sat Sep 8 13:51:01 PDT 2012


On Aug 19, 2012, at 2:55 PM, "Kuperstein, Michael M" <michael.m.kuperstein at intel.com> wrote:

> Hello,
>  
> Currently, llvm::isSafeToSpeculativelyExecute() always returns false for Call instructions.
> This has actual performance implications, because loop-invariant code motion makes this check, and will never hoist instructions that are not safe to speculatively execute.

LICM::canSinkOrHoistInst has special handling for hoisting Call Instructiobns.  It looks like readonly functions should be hoisted. Do you have test cases which fail ?

Thanks,
Nadav
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120908/7cbd3fee/attachment.html>


More information about the llvm-dev mailing list