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

Richard Guenther richard.guenther@gmail.com
Fri Jan 9 16:14:00 GMT 2009

On Fri, Jan 9, 2009 at 4:52 PM, Diego Novillo <dnovillo@google.com> wrote:
> On Mon, Jan 5, 2009 at 05:41, Richard Guenther
> <richard.guenther@gmail.com> wrote:
>> On Mon, Jan 5, 2009 at 8:51 AM, Xinliang David Li <davidxl@google.com> wrote:
>>>> More or less.  You'd still have a web of VOPs but they'd only be
>>>> def-def chains without disambiguation. This is going on in the
>>>> alias-improvement branch. The sometimes horrible compile time behavior
>>>> of memSSA (especially the partitioning and the burden on the operands
>>>> scanner) is one of the main motivations for this work, actually.
>>> Have been through this -- I hope it does not trade one set of problems
>>> for another.
>> We'll see.  Certainly memSSA has problems that cannot be solved - and
>> for precision reasons we absolutely need more than just memSSA, so I do not
>> see a reason to keep both around, given the current scalability problems of
>> memSSA.
> Fundamentally, dealing with aliasing is a Hard Problem and it will
> always be.  Initially, we were trying to have a precise IL
> representation but that quickly becomes a compile time and memory
> bottleneck.  It interferes with passes that do not care for precise
> aliasing representation and it's not really possible to precisely
> represent all types of relations.
> Memory SSA introduced the notion of partitioning to make the
> representation less dense.  But the partitioning is based on
> heuristics and the heuristics we have are weak.  Getting better
> heuristics may help, but it's computationally expensive and hard to
> maintain.
> My hope is that with the new oracle work we can find a good balance.
> We would still use memory SSA as a safety net, with a very simplified
> and sparse network that would essentially link all/most memory
> statements.  Passes that want more precise information can consult the
> oracle.

Another plus is that without the partitioning heuristics it is way
easier to debug alias analysis related problems as its results does no
longer depend on seemingly unrelated code.  Until, of course, we
start to invent heuristics to make querying the oracle cheaper ;)

Btw, I have already accumulated +10% on SPEC-FP 2000 (ok, mostly
caused by mgrid jumping 50% lately).


More information about the Gcc-patches mailing list