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

Diego Novillo dnovillo@google.com
Fri Jan 9 16:02:00 GMT 2009


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.


Diego.



More information about the Gcc-patches mailing list