[RFA] The Integrated Register Allocator

Vladimir Makarov vmakarov@redhat.com
Wed Apr 2 15:00:00 GMT 2008


Mark Mitchell wrote:
> Kenneth Zadeck wrote:
>
>>>> I have made a cursory look over the code, and there are some things
>>>> that I like about the new allocator and some things that cause me
>>>> great concern.
>
> First, Vladimir, thank you for working on this.  We all know that RA 
> is  a GCC weakness, and making progress on that is important.  And, if 
> you have achieved the 1%-3% improvements that you mention, that's very 
> good.  The proof is in the pudding -- faster code coming out of the 
> compiler means you're doing good stuff.
>
Thanks, Mark.
> I am not at all keen to have two register allocators in the compiler. 
> If IRA is what we want, let's put it in -- after testing on several 
> platforms, and with a commitment form you and/or others to resolve 
> problems quickly.  It's fine if mainline is broken for a while on some 
> platforms; that's what Stage 1 is all about.  But, checking stuff into 
> mainline if we're not going to commit to using it as the default RA 
> for 4.4 -- and therefore removing the old one -- is just asking for 
> trouble.  The goal should be to get the new code to be as good as the 
> old code and then make the switch completely.
>
I am agree and I expressed that I'd like to go the old register 
allocator.  I am also agree that IRA should be default for 4.4 at least 
for targets it currently works.  I am ready to help to make IRA works 
right for other targets.

After putting IRA into the mainline I will be ready to provide macros 
for all targets to switch IRA on in order to permit port maintainers to 
start testing and tunning IRA.  I am ready to help them in this.  We 
will see how fast the progress will be to decide when we should finally 
remove the old register allocator.
> Before we declare this ready, I think the rough edges have to be 
> polished off.  That means that the technical issues regarding conflict 
> graphs and such that Kenny is raising need to be addressed.  We also 
> need to be sure that you're using GCC's current infrastructure.  For 
> example, are you using the dataflow machinery where you need to 
> compute conflicts, or doing something else?
>
I provided summary what was done for the old register allocator by Ken 
Zadeck and Peter Bergman and expressed my thoughts why it is not used in 
IRA. If Ken and Peter disagree with this I am ready to discuss it in 
more details.
> As Bernd says, it would also be very helpful if you would write a 
> summary of how IRA works, algorithmically, and post that here.
>
I already mentioned that the start point should be my article for 2007 
GCC Summit.  I've just posted another article which describes IRA with 
more focus on major algorithms used.

I'll provide summary for the changes in other part of the compiler 
(mainly the reload).



More information about the Gcc-patches mailing list