[PATCH] D35741: Add MemorySSA alternative to AliasSetTracker in LICM.

Sanjoy Das via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 27 11:30:19 PDT 2017


On Wed, Sep 27, 2017 at 9:46 AM, Alina Sbirlea <alina.sbirlea at gmail.com> wrote:
> Agreed on those points; the patch description talks about the problem with
> promotion.
> Question is, is it ok to have this functionality checked in as is until a
> rewrite of licm or an alternative for aliasing stores exists?
>
> The hope I have is that the changes can be incremental.
> Current patch only adds the core functionality, without enabling it by
> default.
> Action item for this to be usable:
>     - teach all loop passes to preserve MemorySSA   ----> at this point we
> can compare performance of AST vs MemorySSA approaches.

Do you have preliminary numbers on how much faster MSSA- AST is than the regular
AST?  For instance, what's the performance difference between repeatedly
constructing the AST vs. constructing the MSSA-AST over some representative IR?

In other words, can we get an upper bound on the speedup without doing all the
work needed to teach all the loop passes to preserve MSSA?  If this upper bound
is near-0, then we can cut our losses and avoid doing a bunch of unnecessary
work.

-- Sanjoy

> Action items for better results:
>    - incremental: expose alias information for Uses in MemorySSA
>    - long term: complete rewrite of promotion ----> at this point,
> MemorySSAAliasSets can be removed (I can add a comment to warn against this
> being picked up by other passes)


More information about the llvm-commits mailing list