This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFA] The Integrated Register Allocator
- From: Michael Matz <matz at suse dot de>
- To: Kenneth Zadeck <Kenneth dot Zadeck at NaturalBridge dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Vladimir Makarov <vmakarov at redhat dot com>
- Date: Tue, 1 Apr 2008 23:24:22 +0200 (CEST)
- Subject: Re: [RFA] The Integrated Register Allocator
- References: <87y77x9vd1.fsf@moria.site>
Hi,
On Tue, 1 Apr 2008, Kenneth Zadeck wrote:
> Here we have a patch that inserts a new allocator, but the old one has
> been left "largely" in place.
That is suboptimal, I agree. From past experience (new-ra, bah) it hurts
when the new register allocator is not the only one, or at least the
default one. Nobody tests it, nobody develops on it, it rots, and
eventually it gets removed again. OTOH it's more or less impossible to
develop a complete register allocator on just a branch, so it's either
pest or cholera.
It would be nice if the allocator could be included, activated by default
on _all_ platforms, and force port maintainers to do something about this,
so that at the end of stage 1 the old allocator could be removed. That's
aggressive, but (for this very topic only), I'd rather be more aggressive
than less.
> My next concern is that the new allocator seems to be a large
> regression with respect to building conflict graphs. Peter Bergner
> and my self have spent a lot of time replacing the conflict builder in
> global with a modern algorithm that is both efficient and very
> precise, and yet this patch essentially regresses back to the
> technology used in global before we started.
If I'm not mistaken, the change at its core was only to use a lower
triangular form (the usage of the df framework is nice, but doesn't change
the underlying data). I suppose the same could be done with IRA.
Ciao,
Michael.