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

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


Ugh, please replace the lifetime starts with invariant starts

On Sat, Aug 6, 2016 at 9:30 AM, Daniel Berlin <dberlin at dberlin.org> wrote:

> 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/dd2c8228/attachment.html>


More information about the llvm-commits mailing list