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

Reply via email to