[llvm-commits] [llvm] r56911 - in /llvm/trunk/lib/Target/X86: X86Instr64bit.td X86InstrInfo.td
Chris Lattner
clattner at apple.com
Sat Oct 4 10:23:03 PDT 2008
On Oct 1, 2008, at 10:34 AM, Dan Gohman wrote:
> On Oct 1, 2008, at 9:46 AM, Evan Cheng wrote:
>
>> Hmmm. There could be more bugs of the kind. Any instruction that
>> touches a non-allocatable register should not be deleted.
>
> The problem with this approach is EFLAGS. It's non-allocatable,
> but treating it as always live means that DCE doesn't end up
> eliminating almost anything.
>
>> If your DCE
>> is not checking that, then we need to make sure all instructions that
>> touch esp, etc. should mark these uses.
>
> All the PUSHes and POPs are already marked, as are
> ADJCALLSTACKDOWN, and ADJCALLSTACKUP.
>
> Not all the terminator instructions are marked, but I guess it's
> implicitly assumed that ESP/RSP are always live-out.
> DeadMachineInstructionElim currently assumes that all non-allocatable
> registers are live-out, so it currently doesn't care.
Is the real issue here that ESP is live in and out, but EFLAGS isn't?
If so, can ESP just be added to function live in/out sets?
-Chris
More information about the llvm-commits
mailing list