From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16547 invoked by alias); 15 Feb 2006 10:58:13 -0000 Received: (qmail 16532 invoked by uid 48); 15 Feb 2006 10:58:11 -0000 Date: Wed, 15 Feb 2006 10:58:00 -0000 Message-ID: <20060215105811.16531.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug regression/26290] [4.1 Regression]: some loop optimizations no longer run at -O2 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-02/txt/msg01683.txt.bz2 List-Id: ------- Comment #2 from rguenth at gcc dot gnu dot org 2006-02-15 10:58 ------- Confirmed. This are the two inner loops: 4.0.2: .L6: movl -4(%esi), %ecx movl (%edx), %eax cmpl %eax, %ecx jle .L7 movl %eax, -4(%esi) movl %ecx, (%edx) .L7: incl %ebx addl $4, %edx cmpl %edi, %ebx jne .L6 4.1.0: .L6: movl 8(%ebp), %ebx movl 4(%edx), %ecx movl -4(%ebx,%eax,4), %ebx movl %ecx, -20(%ebp) cmpl %ecx, %ebx movl %ebx, -16(%ebp) jle .L7 movl 8(%ebp), %ebx movl %ecx, -4(%ebx,%eax,4) movl -16(%ebp), %ecx movl %ecx, 4(%edx) .L7: incl -24(%ebp) addl $4, %edx cmpl -24(%ebp), %esi jle .L12 jmp .L6 Optimized tree-dumps have for 4.0.2: :; D.2291 = *((int *) ivtmp.31 + -4B); D.2339 = (int *) ivtmp.22; D.2296 = *D.2339; if (D.2291 > D.2296) goto ; else goto ; :; *((int *) ivtmp.31 + -4B) = D.2296; *D.2339 = D.2291; :; ivtmp.19 = ivtmp.19 + 1; ivtmp.22 = ivtmp.22 + 4B; if (ivtmp.19 != (unsigned int) cnt - (unsigned int) j) goto ; else goto ; and for 4.1.0: :; D.2434 = MEM[base: lst, index: D.2540, step: 4B, offset: -4B]; D.2534 = (int *) ivtmp.49; D.2439 = MEM[base: D.2534, offset: 4B]; if (D.2434 > D.2439) goto ; else goto ; :; MEM[base: lst, index: D.2540, step: 4B, offset: -4B] = D.2439; MEM[base: D.2534, offset: 4B] = D.2434; :; j.56 = j.56 + 1; ivtmp.49 = ivtmp.49 + 4B; if (cnt > j.56) goto ; else goto ; which doesn't look too much worse. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2006-02-15 10:58:11 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26290