This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] The Integrated Register Allocator


Paolo Bonzini wrote:

On gcc torture tests there is one additional regression for x86_64 and
one for ppc64 in comparison with the trunk.  These two regressions are
not critical: some particular code generation is expected.  The code
is different with IRA usage but it is still correct.  I'll see what
can I do with the tests.

I think it's best if you make these tests use IRA, hoping that it becomes the default more sooner than later.


How are the compile times?

When I checked last time, x86_64 bootstrap with IRA needed 0.4% more time than with the old register allocator (with --enable-checking=release). SPECINT2000 compilation (practically for all targets) is in 3% slowdown frame (again with --enable-checking=release). SPECFP2000 needs more time for IRA and the slowdown can be as worse as 8% for itanium.

When Chaitin-Briggs algorithm is used (instead of default and more complicated regional one) compiler slowdown is even less (about 1% for x86_64 on SPECINT2000).

I spent last half year mostly on speeding IRA up. I've rewritten a big part of IRA for this and decreased compiler slowdown on SPECINT2000 from 10% to 3%.

I think it is impossible to achieve better and faster RA using the reload than the old RA. My observation is that better register allocation results in one more iteration of the reload because of more dense usage of hard-registers.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]