This is the mail archive of the gcc@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: Project RABLET


Andrew MacLeod wrote:


o register pressure relief through live range splitting and/or
rematerialization. We have no accurate information here, because
after that there are passes which change the pressure like insn



Sure, Im not suggesting that RABLET will reduce the register pressure to
something that isn't going to spill. Far from it. I am saying that
RABLET can reduce something completely unmanageable to something more
manageable. instead of handing the RTL passes a basic block that
contains a peak register pressure of 120 when there are 16 hardware
registers, perhaps it will be a basic block that has been reduced down
to a peak of 25 or something. The calculations at the tree level are
only going to be rough, enough to use as a guideline like that.




 Having no information about the final register allocator decision,
the partial register pressure reducing through rematerialization is
not working in many cases.  For example, making rematerialization of

a <- b + c

when you reduce the pressure from 100 to 50 for x86 there is a big
chance that b and c will be not placed in hard registers.  Instead of
one load (of a), two loads (b and c) will be needed.  This result code
is even worse than before reducing pressure.

 So rematerialization in out-of-ssa pass will work well only for full
pressure relief (to the level equal to the number of hard registers)
or close to the full relief.

 But even if you can decrease register pressure relief to the level
of the hard register number, it is hard to know have you achieved the
full register pressure relief because you can not be sure what
register class will be used (e.g. AREG or GENERAL_REGS for x86).
Although it can work for architectures with big regular register
files (e.g. classic RISC processors).

The SSA pressure relief through rematerialization described in
Simpson's theses is oriented for such architectures (with a big
regular register file size of 32 as I remember).  So it can work for
ppc but it will be less successful for major interest platforms x86 and
x86_64.


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