[LLVMdev] Stop MachineCSE on certain instructions

Evan Cheng evan.cheng at apple.com
Tue Dec 20 13:43:34 PST 2011

If an instruction is marked as side-effect free then it's a candidate for CSE. Try marking the instruction with hasSideEffects.


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

More information about the llvm-dev mailing list