From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10053 invoked by alias); 21 Jan 2004 13:58:00 -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 10043 invoked from network); 21 Jan 2004 13:57:59 -0000 Received: from unknown (HELO Cantor.suse.de) (195.135.220.2) by sources.redhat.com with SMTP; 21 Jan 2004 13:57:59 -0000 Received: from Hermes.suse.de (Hermes.suse.de [195.135.221.8]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by Cantor.suse.de (Postfix) with ESMTP id AF3151A26B85; Wed, 21 Jan 2004 14:57:58 +0100 (CET) Received: by wotan.suse.de (Postfix, from userid 10510) id 3B20B106B6; Wed, 21 Jan 2004 14:57:58 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by wotan.suse.de (Postfix) with ESMTP id 38BA6106A9; Wed, 21 Jan 2004 14:57:58 +0100 (CET) Date: Wed, 21 Jan 2004 14:11:00 -0000 From: Michael Matz To: Denis Chertykov Cc: gcc@gcc.gnu.org Subject: Re: [new-ra] Development status? In-Reply-To: <8yk21qi8.fsf@localhost.localdomain> Message-ID: References: <22e301c3dd71$1875c480$34b82997@bagio> <8yk21qi8.fsf@localhost.localdomain> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2004-01/txt/msg01641.txt.bz2 Hi, On Tue, 20 Jan 2004, Denis Chertykov wrote: > > > I was interested in comparision of results given by pre-reload based > > > web_class and regclass based web_class. > > > > They at least shouldn't be worse, I think, are they? > > The results are *equal* !!! (for x86) > Exclude a few difficult cases. Hmm, but theoretically regclass can do much better than pre-reload (at the expense for sometimes emitting some reloads later). The situation which it handles better for instance is this: There are register classes A, B and AB (union of A and B). Now suppose there is and insns i1 (with two ops) and i2 (one op) having such constraints: i1 op0 "a,b" op1 "b,a" i2 op0 "a" and in the insn stream we have this: i1(p0, p1) i2(p1) (p0 and p1 are pseudos, i.e. p0 is operand 0 of i1, and p1 is operand 1 of i1 and operand 0 of i2). Now pre-reload looks at each insn individually and selects one certain alternative of it (the cheapest for some definition of cheap). Without other means it would select alternative 0 for insn i1. Ergo p0 gets class A and p1 class B. Now i2 requires p1 to be class A, ergo we need some fixup code. Had pre-reload selected the second alternative from the beginning it wouldn't be needed. Sometimes there are even cases where selection of an alternative should be deferred to even later. regclass does better in this example. It would determine that the cost of class A for p1 is less than class B. > After you got the patch and seeing on results I would discuss the > problem of register classes in new-ra. Is this OK ? Yes. Ciao, Michael.