From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8854 invoked by alias); 6 Jan 2010 23:54:10 -0000 Received: (qmail 8795 invoked by uid 48); 6 Jan 2010 23:53:52 -0000 Date: Wed, 06 Jan 2010 23:54:00 -0000 Message-ID: <20100106235352.8794.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug rtl-optimization/42631] [4.5 Regression] "-fcompare-debug failure" with "-O1 -funroll-loops" In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "steven at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-01/txt/msg00723.txt.bz2 ------- 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