[PATCH] D19730: [BasicAA] Treat llvm.assume as not accessing memory in getModRefBehavior(Function)

Daniel Berlin via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 29 10:31:28 PDT 2016


>
>
>
> I'm not sure this is a good idea. As the comment says, they "never aliases
> any particular memory location". This, however, is not comparing against
> any particular location.


It is asking for general behavior.

Yes, and it neither mod nor refs anything :)


> AA should probably be constant with the function attributes here.
>

BasicAA already was working around this.  This just puts this knowledge in
one place instead of two (basicaa and memoryssa).

In any case, if we are going to do that, we'd have to actually fix things
properly.  Saying assume has side-effects and writes things was wrong in
the first place compared to actually modeling control dependencies for
things like assume properly.

It simply does not have side-effects or write anything. Period.  Claiming
otherwise is a lie to try to avoid fixing other infrastructure to handle
this kind of intrinsic properly.

Until we go and have the wherewithal to fix that infrastructure, we are
going to have to accept that we are going to have things like this, where
we are making up for it.

The alternative, which was currently done, where basicaa and memoryssa and
whoever else has to know that assume is magic and special, seems much worse.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160429/b438ca92/attachment.html>


More information about the llvm-commits mailing list