On Wed, Dec 5, 2012 at 8:11 PM, Steven Bosscher wrote: > The function that triggers this, has this RTL after IRA:
At which point, of course, I wanted to show after substituting hard regs for the pseudos, so that: > > 1: NOTE_INSN_DELETED > 3: NOTE_INSN_BASIC_BLOCK 2 > 2: NOTE_INSN_FUNCTION_BEG > 5: {r60:DI=frame:DI-0x10;clobber flags:CC;} > REG_UNUSED flags:CC > REG_EQUIV frame:DI-0x10 > 6: dx:DI=r60:DI > REG_DEAD r60:DI > REG_EQUAL frame:DI-0x10 > 7: si:SI=0x5 > 8: di:DI=`*.LC0' > 9: ax:QI=0 > 10: ax:SI=call [`printf'] argc:0 > REG_DEAD di:DI > REG_DEAD si:SI > REG_DEAD dx:DI > REG_UNUSED ax:SI > 15: ax:SI=0 > 18: use ax:SI becomes... 3: NOTE_INSN_BASIC_BLOCK 2 2: NOTE_INSN_FUNCTION_BEG 5: NOTE_INSN_DELETED 6: dx:DI=frame:DI REG_DEAD r60:DI REG_EQUAL frame:DI-0x10 7: si:SI=0x5 8: di:DI=`*.LC0' 9: ax:QI=0 10: ax:SI=call [`printf'] argc:0 REG_DEAD di:DI REG_DEAD si:SI REG_DEAD dx:DI REG_UNUSED ax:SI 15: ax:SI=0 18: use ax:SI on entry to lra_create_live_ranges(). > Note how there are no pseudos at all in the function. (... apart from the REG_DEAD use of r60. Both IRA and LRA sometimes leave REG_NOTEs referencing pseudos. I haven't figured out yet why.) Ciao! Steven