[LLVMdev] Stop MachineCSE on certain instructions

Jim Grosbach grosbach at apple.com
Wed Dec 21 09:46:00 PST 2011


Eh? There's a hasSideEffects attribute on the instruction definitions in the .td file. It has nothing to do with inline assembly.

On Dec 20, 2011, at 7:03 PM, girish gulawani wrote:

> 
> Hi Evan.
> The hasSideEffects method I believe operates only on Inline Assembly (IA) blocks. What if such a sequence is not part of IA?
> 
> Thanks.
> Girish.
> 
> If an instruction is marked as side-effect free then it's a candidate for CSE. Try marking the instruction with hasSideEffects.
> 
> Evan
> 
> On Dec 17, 2011, at 12:24 PM, Johannes Birgmeier wrote:
> 
> > Hello,
> > 
> > I'm writing for a backend and have a complicated instruction bundle (3 
> > instructions) that has to be executed like a single block (meaning: if 
> > the first instruction is executed, all three have to be executed to 
> > obtain the result, though not necessarily without other instructions in 
> > between). Unfortunately, MachineCSE gets in the way sometimes and rips 
> > it apart.
> > 
> > Is there a way to stop CSE from doing its thing (common subexpression 
> > elimination) for certain instructions?
> > 
> > I've already tried glueing (gluing?) them together, but that doesn't 
> > seem to make a difference.
> > 
> > Regards,
> > Johannes Birgmeier
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu        http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu        http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111221/0f126503/attachment.html>


More information about the llvm-dev mailing list