[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