[llvm-commits] [llvm] r147827 - in /llvm/trunk: lib/CodeGen/MachineCSE.cpp test/CodeGen/ARM/machine-cse-cmp.ll test/CodeGen/Thumb2/thumb2-cbnz.ll test/CodeGen/X86/machine-cse.ll

Jakob Stoklund Olesen stoklund at 2pi.dk
Mon Jan 9 19:23:40 PST 2012


On Jan 9, 2012, at 6:02 PM, Evan Cheng wrote:

> Allow machine-cse to look across MBB boundary when cse'ing instructions that
> define physical registers. It's currently very restrictive, only catching
> cases where the CE is in an immediate (and only) predecessor. But it catches
> a surprising large number of cases.

Yikes, that's pretty scary. You could badly constrain register allocation by extend the live range of random physical registers. You could also make the program impossible to register allocate, like physreg coalescing used to do on occasion.

Could this be limited to only unallocatable physregs? I am assuming you are after EFLAGS/CPSR anyway.

Check out TRI::isInAllocatableClass(), or even RegisterClassInfo::isAllocatable().

/jakob

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120109/5257279e/attachment.html>


More information about the llvm-commits mailing list