From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20888 invoked by alias); 4 Dec 2001 06:34:35 -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 20867 invoked from network); 4 Dec 2001 06:34:32 -0000 Received: from unknown (HELO taltos.codesourcery.com) (66.92.14.122) by sources.redhat.com with SMTP; 4 Dec 2001 06:34:32 -0000 Received: from zack by taltos.codesourcery.com with local (Exim 3.33 #1 (Debian)) id 16B99z-0004v4-00; Mon, 03 Dec 2001 22:34:31 -0800 Date: Mon, 03 Dec 2001 22:34:00 -0000 From: Zack Weinberg To: Richard Henderson , gcc@gcc.gnu.org Subject: Re: messy combine problem - PPC Message-ID: <20011204063431.GB18650@codesourcery.com> References: <20011203204934.GG292@codesourcery.com> <20011203150606.D7284@redhat.com> <20011203235312.GK292@codesourcery.com> <20011203182706.B7420@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20011203182706.B7420@redhat.com> User-Agent: Mutt/1.3.24i X-SW-Source: 2001-12/txt/msg00105.txt.bz2 On Mon, Dec 03, 2001 at 06:27:06PM -0800, Richard Henderson wrote: > On Mon, Dec 03, 2001 at 03:53:12PM -0800, Zack Weinberg wrote: > > I'll try this, but will it inhibit desirable optimizations? > > No. I thought about it a bit more, and it can't ever inhibit an optimization, but I am still worried about not recording registers that die in call instructions. Consider result = (*fptr) (args...); where fptr is not used after that, and combine will see RTL such as (set (reg:SI result) (call (reg:P fptr))) or is there something else that takes care of that? > > > Also, that should really be using regs_invalidated_by_call rather > > > than call_used_regs. Not that it'll make too much difference, > > > since we don't do a whole lot of combining with fixed registers. > > > > Huh? > > for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) > - if (call_used_regs[i]) > + if (TEST_HARD_REG_BIT (regs_invalidated_by_call, i)) Oh, you meant the loop in record_dead_and_set_regs. zw