A new gimple pass (LRS: live range shrinking) to reduce register pressure
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