From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7636 invoked by alias); 12 May 2003 16:16:20 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 7427 invoked from network); 12 May 2003 16:16:18 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 12 May 2003 16:16:18 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h4CGGHH04015; Mon, 12 May 2003 12:16:17 -0400 Received: from speedy.slc.redhat.com (vpn50-22.rdu.redhat.com [172.16.50.22]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h4CGGDI32741; Mon, 12 May 2003 12:16:13 -0400 Received: from redhat.com (law@localhost) by speedy.slc.redhat.com (8.12.8/8.12.8/Submit) with ESMTP id h4CGG02S015148; Mon, 12 May 2003 10:16:01 -0600 Message-Id: <200305121616.h4CGG02S015148@speedy.slc.redhat.com> X-Authentication-Warning: speedy.slc.redhat.com: law owned process doing -bs To: Michael Matz cc: Andrew MacLeod , Diego Novillo , gcc mailing list Reply-To: law@redhat.com Subject: Re: [tree-ssa] Out of SSA status and issues In-Reply-To: Your message of "Mon, 12 May 2003 18:04:53 +0200." From: law@redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 12 May 2003 16:16:00 -0000 X-SW-Source: 2003-05/txt/msg01156.txt.bz2 In message , Michael Ma tz writes: >Hi, > >On 12 May 2003, Andrew MacLeod wrote: > >> I beleive the bvrute force approach is to flag any variables which are >> elements of PHI's acroiss an abnormal ciroitcal edge, and never copy >> propagate them ie, so in the example, when you look at the PHI, you see >> p_9 and p_14 are used across abnormal critical edges, so you stick them >> in a list of variables never to copy propagate. > >A better heuristic is to start with ignoring abnormal critical edges. >Then _if_ there are copies inserted on such edges, mark the involved >variables as never-propagate. In that case rerun the pass. Yes, this >sometimes is slower, but produces better code (i.e. something or -O3 >depending on how slow it actually is). This heuristic won't work for Andrew's problem since we don't know if things are "mucked up" until we're about to leave SSA form, at which point you can't easily go back and undo the copy propagation. This kind of heuristic does work for things like PRE/LCM though. jeff