[PATCH] D24517: GVN-hoist: fix store past load dependence analysis (PR30216)

Daniel Berlin via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 13 13:04:13 PDT 2016


Interesting.
Sebastian has two problems:

1. No MemorySSA form handles *hoisting* stores (not gcc, not open64's
mu/chi/etc).
It requires building the reverse problem to make these links exist.

Instead, most things *sink* stores, which MemorySSA makes easy.
See SSUPRE, etc.

2. If you are going to write your own walkers, etc, we don't make it easy
enough.

My initial view is: Rather than do this as a completely separate piece by
piece query interface, the intention was for folks to write custom walkers,
and use those.
For example, the code in this patch could be written as a MemorySSA walker
that implemented "getClobberingMemoryAccess" for stores.
It has a different definition of what it means to be a clobbering memory
access than the default walker.
That's okay.

*Inside of walkers*, we should make instructionClobbersQuery available.

Thoughts?




On Tue, Sep 13, 2016 at 12:10 PM, Geoff Berry <gberry at codeaurora.org> wrote:

> gberry added a subscriber: gberry.
> gberry added a comment.
>
> I ran into the lack of an interface for this query in MemorySSA as well in
> the EarlyCSE changes I was working on.  I think what you want is to be able
> to call instructionClobbersQuery() since that knows about special
> intrinsics and meta-data as well.
>
>
> https://reviews.llvm.org/D24517
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160913/9b9463f9/attachment.html>


More information about the llvm-commits mailing list