From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8917 invoked by alias); 21 Feb 2007 22:09:44 -0000 Received: (qmail 8881 invoked by uid 48); 21 Feb 2007 22:09:32 -0000 Date: Wed, 21 Feb 2007 22:09:00 -0000 Message-ID: <20070221220932.8880.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/30905] [dataflow] Fails to cross-jump In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "steven at gcc dot 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: 2007-02/txt/msg02516.txt.bz2 ------- Comment #2 from steven at gcc dot gnu dot org 2007-02-21 22:09 ------- On the trunk, *and* on the dataflow branch, we crossjump the code starting with "if (i != 1)" on the first cleanup_cfg iteration when it's called from rest_of_handle_stack_adjustments. Trunk then goes on to crossjump the other blocks, but the df-branch stops because there is a set to the CC-reg in the way. That set has a REG_UNUSED flag on it. What probably happens, is that flow on the trunk does some dce in the liveness update, and the df-branch does not. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30905