From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2225 invoked by alias); 30 Sep 2007 13:41:56 -0000 Received: (qmail 2154 invoked by alias); 30 Sep 2007 13:41:37 -0000 Date: Sun, 30 Sep 2007 13:41:00 -0000 Message-ID: <20070930134137.2153.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/33572] [4.3 Regression] wrong code with -O In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dnovillo at google dot com" 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: 2007-09/txt/msg02485.txt.bz2 ------- Comment #11 from dnovillo at google dot com 2007-09-30 13:41 ------- Subject: Re: [4.3 Regression] wrong code with -O On 30 Sep 2007 12:41:03 -0000, rguenth at gcc dot gnu dot org wrote: > > > ------- Comment #9 from rguenth at gcc dot gnu dot org 2007-09-30 12:41 ------- > Diego, we seem to have a general problem with the incremental SSA updater. > If we rename foo$ptr in > > : > # foo$ptr_16 = PHI > p_12 = foo$ptr_16; > foo$ptr_19(ab) = 0B; > p_15 = foo$ptr_16; > p_4 = foo$ptr_16; > p_5 = foo$ptr_16; > D.1781_6 = foo$ptr_16->_vptr.Foo; > D.1782_7 = *D.1781_6; > OBJ_TYPE_REF(D.1782_7;foo$ptr_16->0) (foo$ptr_16); > goto ; Is the symbol foo$ptr being marked for renaming? If so, that's wrong. A gimple register symbol cannot be marked for renaming if there are overlapping live ranges in its SSA names. We don't have a general mechanism to prevent that. Mostly because we do not keep track when OLRs are created. The generic SSA updating mechanism has no cheap way of checking that. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33572