[Bug rtl-optimization/42631] [4.5 Regression] "-fcompare-debug failure" with "-O1 -funroll-loops"
steven at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Jan 6 23:54:00 GMT 2010
------- 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
More information about the Gcc-bugs
mailing list