From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12062 invoked by alias); 3 Dec 2001 12:36:06 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 12040 invoked by uid 71); 3 Dec 2001 12:36:04 -0000 Date: Mon, 03 Dec 2001 04:36:00 -0000 Message-ID: <20011203123604.12037.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Juergen Keil Subject: Re: optimization/3480: gcc-3.0, bad code generated with -O3 -fomit-frame-pointer on intel x86 Reply-To: Juergen Keil X-SW-Source: 2001-12/txt/msg00220.txt.bz2 List-Id: The following reply was made to PR optimization/3480; it has been noted by GNATS. From: Juergen Keil To: chr.breitkopf@magrathea.de, rodrigc@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, jk@tools.de, nobody@gcc.gnu.org Cc: Subject: Re: optimization/3480: gcc-3.0, bad code generated with -O3 -fomit-frame-pointer on intel x86 Date: Mon, 3 Dec 2001 13:30:00 +0100 (MET) > Synopsis: gcc-3.0, bad code generated with -O3 -fomit-frame-pointer on in= tel=20 x86 >=20 > State-Changed-From-To: open->feedback > State-Changed-By: rodrigc > State-Changed-When: Sat Dec 1 22:49:12 2001 > State-Changed-Why: > I think this has been fixed by: > http://gcc.gnu.org/ml/gcc-patches/2001-11/msg00698.html > =20 > Can you try a gcc 3.0.3 snapshot and verify this? >=20 >=20 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=3Dview%20audit-trail&pr=3D3480&d= atabase=3Dg cc Yes, the problem seems to be fixed. I've downloaded and installed snapshot gcc-20011126 and the code generated for the problematic function 'acmStreamOpen' looks much better now: .type acmStreamOpen,@function acmStreamOpen: pushl %ebp pushl %edi pushl %esi pushl %ebx subl $16, %esp movl 44(%esp), %esi <-- third parameter is now accessed via %es= p=20 with correct offset movzwl 16(%esi), %ecx movl 48(%esp), %ebx In the released versions of gcc-3.0.x, the following buggy code is generate= d (from my bug report) =09.globl acmStreamOpen =09.type acmStreamOpen,@function =09acmStreamOpen: =09pushl %ebp =09pushl %edi =09pushl %esi =09pushl %ebx =09subl $96, %esp =09movl 12(%ebp), %esi <--- accesses pwfxSrc as offset(%ebp), no =09=09=09 <--- valid %ebp setup yet! =09movzwl 16(%esi), %edx =09movl 16(%ebp), %ebx -- J=FCrgen Keil =09=09jk@tools.de Tools GmbH=09=09=09+49 (228) 9858011