[PATCH] D23214: [MDA] Treat invariant.start as non-dependence

Daniel Berlin via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 6 09:30:36 PDT 2016


So, this value forwards in a case i hadn't thought about.

foo = lifetime.start(p)
<stuff>
bar = lifetime.start(p)
lifetime.end (bar)

will become
foo = lifetime.start(p)
<stuff>
bar = lifetime.start(p)
lifetime.end (foo)


I'm not sure the above is even valid, but i found it in Real Live Code(TM).

Thoughts?



On Fri, Aug 5, 2016 at 10:15 PM, Anna Thomas <anna at azul.com> wrote:

> anna added a comment.
>
> Changing the code to teach Alias analysis (instead of MDA) about the
> readonly nature of MDA. All the tests are still valid (and checks remain
> the same).
> getModRefInfo is used by MDA, so the implications on the various passes
> (GVN, Memcpyopt and DSE) should be the same, it’s just that the code change
> will be within the same code region where other special cases for
> llvm.assume and guard intrinsics exist.
>
> Making the change in alias analysis rather than MDA stemmed from the
> discussion in llvm-commits mailing list with dberlin and sanjoy.
>
>
> https://reviews.llvm.org/D23214
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160806/110a1974/attachment.html>


More information about the llvm-commits mailing list