------- Comment #3 from steven at gcc dot gnu dot org 2010-01-06 23:53 ------- In the .loop2_done dump, the RTL looks like this:
7 NOTE_INSN_BASIC_BLOCK 6 NOTE_INSN_FUNCTION_BEG 22 {r63:SI=r62:SI-0x1;clobber flags:CC;} 23 {r64:SI=r63:SI&0x7;clobber flags:CC;} 26: debug k => r62:SI 27 {r62:SI=r62:SI-0x1;clobber flags:CC;} REG_UNUSED: flags:CC 28: debug k => r62:SI 29 flags:CCZ=cmp(r62:SI,0x0) 30 pc={(flags:CCZ!=0x0)?L225:pc} REG_BR_PROB: 0x2198 REG_DEAD: flags:CCZ And in the .web dump, the registers have been renamed: 7 NOTE_INSN_BASIC_BLOCK 6 NOTE_INSN_FUNCTION_BEG 22 {r63:SI=r62:SI-0x1;clobber flags:CC;} 23 {r64:SI=r63:SI&0x7;clobber flags:CC;} 26: debug k => r66:SI 27 {r68:SI=r67:SI-0x1;clobber flags:CC;} REG_UNUSED: flags:CC 28: debug k => r68:SI 29 flags:CCZ=cmp(r68:SI,0x0) 30 pc={(flags:CCZ!=0x0)?L225:pc} REG_BR_PROB: 0x2198 REG_DEAD: flags:CCZ Note the changes in insn 26 and insn 27. The use of reg 62 in debug_insn 26 is put in its own web, because the webizer hasn't found a DEF for it -- so it splits the live ranges of reg 62 into a single live range for the debug_insn and a new live range for the def of insn 27 and all uses reached by this def. Alexandre, does the position of debug_insn 26 look right to you? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42631