From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1322 invoked by alias); 8 May 2003 18:52:26 -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 1294 invoked by uid 48); 8 May 2003 18:52:26 -0000 Date: Thu, 08 May 2003 18:52:00 -0000 Message-ID: <20030508185226.1292.qmail@sources.redhat.com> To: Joerg-Cyril.Hoehle@T-Systems.com, bruno@clisp.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, sds@gnu.org From: ehrhardt@mathematik.uni-ulm.de Reply-To: ehrhardt@mathematik.uni-ulm.de, Joerg-Cyril.Hoehle@T-Systems.com, bruno@clisp.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, sds@gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: optimization/10684: register variable update disappears when using -O X-SW-Source: 2003-05/txt/msg00638.txt.bz2 List-Id: Synopsis: register variable update disappears when using -O State-Changed-From-To: open->analyzed State-Changed-By: cae State-Changed-When: Thu May 8 18:52:25 2003 State-Changed-Why: Confirmed, still present in 3.4-cvs. This is a reduced testcase: register int STACK __asm__("%ebx"); static void (*p) (); void f () { STACK += 1; p (); STACK -= 1; } Looking at the assembly shows that STACK += 1 ist lost if compiled with -O. The problem seems to be that life analysis adds a REG_DEAD note to the call to (*p) which makes STACK += 1 a dead store. regards Christian http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10684