From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1479 invoked by alias); 22 Nov 2008 10:17:03 -0000 Received: (qmail 22203 invoked by alias); 22 Nov 2008 10:15:42 -0000 Date: Sat, 22 Nov 2008 10:17:00 -0000 Message-ID: <20081122101542.22202.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/30521] "if (i == n) ++i;" or "i += i == n;"? In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "bonzini at 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: 2008-11/txt/msg01878.txt.bz2 ------- Comment #7 from bonzini at gnu dot org 2008-11-22 10:15 ------- Subject: Re: "if (i == n) ++i;" or "i += i == n;"? > The form of the code before CSE is caught in noce_try_addcc. The second form > obviously not (because we don't know that the value of i.20 is "i + 1"). > > So this comes down to a pass ordering problem. I'll just point out that the df merge allowed much better freedom in pass ordering. Ifconv1 could be anticipated before CSE and fwprop. Paolo -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30521