From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2147 invoked by alias); 12 May 2003 16:10:08 -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 1592 invoked from network); 12 May 2003 16:10:03 -0000 Received: from unknown (HELO touchme.toronto.redhat.com) (207.219.125.105) by sources.redhat.com with SMTP; 12 May 2003 16:10:03 -0000 Received: from localhost.localdomain (tooth.toronto.redhat.com [172.16.14.29]) by touchme.toronto.redhat.com (Postfix) with ESMTP id 6B71B800030; Mon, 12 May 2003 12:10:02 -0400 (EDT) Subject: Re: [tree-ssa] Out of SSA status and issues From: Andrew MacLeod To: Michael Matz Cc: Diego Novillo , gcc mailing list In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Mon, 12 May 2003 16:10:00 -0000 Message-Id: <1052755802.24553.374.camel@p4> Mime-Version: 1.0 X-SW-Source: 2003-05/txt/msg01154.txt.bz2 On Mon, 2003-05-12 at 12:04, Michael Matz wrote: > 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). > Unfortunately, we don't know which edges we are going to need to insert copies on until we are exiting SSA form and have built the interference graph et all. So by that point, its too late to make a decision not to do something in an earlier pass. Andrew