[llvm-commits] [llvm] r56911 - in /llvm/trunk/lib/Target/X86: X86Instr64bit.td X86InstrInfo.td
Dan Gohman
gohman at apple.com
Wed Oct 1 10:34:42 PDT 2008
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.
Are there others?
Dan
More information about the llvm-commits
mailing list