This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: IRA undoing scheduling decisions
On 08/27/09 04:04, Alex Turjan wrote:
With 4.4, IRA happens to reuse the same register for both pseudos, so
sched2 is hand tied and cannot schedule them back again for us.
I can imagine compiling other programs for which preserving the 4.3 allocation will induce performance degradation due to spilling.
The register allocator tries to minimize the number of spills without taking into account the ILP implications (i.e., creating extra false dependencies). Perhaps one possible way to solve the problem would be to analyze why the register rename phase (which is responsible for spreading the registers) does not produces 2 registers.
ISTM the right thing is to go with the more compact allocation, then for
the register renamer to expand the set of used registers to avoid the
false dependencies.
jeff