A new gimple pass (LRS: live range shrinking) to reduce register pressure

Vladimir Makarov vmakarov@redhat.com
Mon Jan 5 17:12:00 GMT 2009


Steven Bosscher wrote:
>
> In my perfect GCC, we'd have a register pressure control mechanism on
> GIMPLE (not too smart, but just enough to avoid really stupid things)
> and live range shrinking on RTL, preferably as part of sched1.
>
>
>   
I am agree with Steven.  Although the LRS pass gives a nice improvement 
(about 0.3%-0.5% for SPEC2006 on i686 according to my calculations from 
the posted numbers.  I think the result would be less for targets with 
sched1 switched on or targets for bigger register file), the LRS pass as 
a single solution probably is not fully adequate because it is too early.

I tried analogous thing (Simpson's approach of register pressure relief 
through remateriliazation) five years ago (it was reported on 2004 GCC 
summit).  It was implemented on RTL and even on this stage it can not 
help much because register pressure calculation was inaccurate mainly 
because pseudos could have intersected register classes in the old RA.  
IRA uses non-intersected register classes for most targets and it opens 
possibilities for more accurate register pressure relief passes (through 
rematerilization or LRS).  I hope it is already helped this pass.

By the way I am going to work on LRS in sched1 when I am less busy with 
IRA.  I planned that long time ago.



More information about the Gcc-patches mailing list