From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19783 invoked by alias); 6 Jan 2003 08:06:59 -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 19775 invoked from network); 6 Jan 2003 08:06:55 -0000 Received: from unknown (HELO grebe.mail.pas.earthlink.net) (207.217.120.46) by 209.249.29.67 with SMTP; 6 Jan 2003 08:06:55 -0000 Received: from ilmasc01-49.midwest.net ([209.248.16.59] helo=there) by grebe.mail.pas.earthlink.net with smtp (Exim 3.33 #1) id 18VSHL-0002YA-00; Mon, 06 Jan 2003 00:06:37 -0800 Content-Type: text/plain; charset="iso-8859-1" From: Andy Walker To: Daniel Berlin Subject: Re: An unusual Performance approach using Synthetic registers Date: Mon, 06 Jan 2003 09:00:00 -0000 Cc: Tom Lord , gcc@gcc.gnu.org References: In-Reply-To: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-Id: X-SW-Source: 2003-01/txt/msg00264.txt.bz2 Do you have any idea about how well the new allocator handles two-tiered register classes? Obviously, my specific interest is a small class of general registers coupled with a large class of quite restricted registers. Andy On Monday 06 January 2003 12:49 am, Daniel Berlin wrote: > > My goal is that the generated code with Synthetic registers will be > > significantly better (looking just at the instruction count). If the > > fields > > have individual values, in your example, then Reload imposes an > > overhead. It > > is a two step process: move the spilled data back into a register, > > then use > > it. With a Synthetic, you get to just use it. > > If the new allocator determines the data in question is cheaper to > recalculate than it would be to reload it from memory, it'll do so > (though it might be a bit limited in what it *can* recalculate right > now, this is fixable. I don't have numbers on how often it would have > wanted to remat but couldn't due to these problems). It's known as > "rematerialization". > Thus, in the example of vtable pointers, it'll simply recalculate the > value into the new register, rather than reload it from memory. > > > Andy