[PATCH] This patch introduces MemorySSA, a virtual SSA form for memory.Details on what it looks like are in MemorySSA.h

Philip Reames listmail at philipreames.com
Tue Mar 24 17:28:00 PDT 2015


On 03/24/2015 05:07 PM, Daniel Berlin wrote:
>
>
> On Tue, Mar 24, 2015 at 4:55 PM, Philip Reames 
> <listmail at philipreames.com <mailto:listmail at philipreames.com>> wrote:
>
>     This is looking reasonable complete.  Any chance we could land it
>     in it's current form and evolve it in tree?  Tracking changes is
>     becoming quite hard.
>
> Yes, let me add some more comments, update it once more, and declare 
> victory for the moment until someone looks at it again.
>
> The one thing blocking it from being used for say, memcpyoptimizer is 
> that it's not  *quite* lazy enough.
Do you think this would this actually be a performance problem? 
Particularly once we start using this is multiple passes and preserving 
it across them, it's not clear to me how expensive the current form will 
actually be.
>
> I wanted to make it pass in the list of defining blocks, and then it 
> only computes memory ssa on the parents of this block in the dominator 
> tree (since that is all a walk would ever return).
>
> It could be made completely lazy by doing per-variable phi 
> computation, as it hits the last use in a multiple-predecessor block 
>  non-local use, as long as it gets a promise you won't modify the CFG :)
>
> Then we'd just have the walker do something like 
> Def->ensureUseComputed or something to trigger it to do insertion.
>
>
>     Using this to implement a simple cross block DSE might be an
>     interesting proof of concept.  I'm not set on that idea, but it
>     would be nice to have something in tree to show this actually
>     working. 
>
>
> My original goal was to rewrite memcpyoptimizer, rather than write a 
> new pass.
> But i'm happy to do either :)
Either works for me.  I have no strong preference.
> I could also rewrite MergedLoadStoreMotion to use it. It would 
> simplify the code pretty greatly, i think, since it would no longer 
> have to look at/walk successor blocks
>
>     Once we have that, we can migrate other passes to it one by one.
>
>
>     http://reviews.llvm.org/D7864
>
>     EMAIL PREFERENCES
>     http://reviews.llvm.org/settings/panel/emailpreferences/
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150324/7c774f09/attachment.html>


More information about the llvm-commits mailing list