[PATCH] D74935: [LangRef][AliasAnalysis] Clarify `noalias` affects only modified objects
Nicolai Hähnle via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sat Feb 22 03:24:50 PST 2020
nhaehnle added a comment.
In D74935#1887245 <https://reviews.llvm.org/D74935#1887245>, @efriedma wrote:
> In D74935#1886020 <https://reviews.llvm.org/D74935#1886020>, @nhaehnle wrote:
>
> > I find this phrasing pretty confusing. How about the following:
> >
> > > This indicates that objects accessed via pointer values based on the argument or return value are not **modified**, during the execution of the function, via pointer values not based on the argument or return value. [...]
>
>
> This isn't equivalent. If the memory location is modified, we want to forbid both reads and writes that aren't based on the noalias pointer.
Oh I see. So another way to put this is:
- If an object is accessed via a pointer based on the noalias argument, then it cannot be modified via other pointer values.
- If an object is modified via a pointer based on the noalias argument, then it cannot be accessed via other pointer values in any way.
Correct? I think it's useful to spell it out like this, because it makes the alias implications clearer (at least to me).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D74935/new/
https://reviews.llvm.org/D74935
More information about the cfe-commits
mailing list