[PATCH] D74935: [LangRef][AliasAnalysis] Clarify `noalias` affects only modified objects
Jeroen Dobbelaere via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 6 01:08:00 PST 2020
jeroen.dobbelaere added a comment.
In D74935#1908665 <https://reviews.llvm.org/D74935#1908665>, @jdoerfert wrote:
> I think we conflate two things here:
>
> 1. The modifications to the LangRef which should be in accordance with the C standard (at least I haven't seen you contradict the new wording directly).
imho, the proposed wording is still confusing, and does not handle the case with the extra indirections.
Unless the 'by any means' was meant to also include the '.. Every access that modifies X shall be considered also to modify P,for the purposes of this subclause. .. ' from the restrict specification.
If that is the idea, we should mention it explicitly.
> 2. The extended `noalias` deduction D73428 <https://reviews.llvm.org/D73428>.
>
> If you look at the commit message in D73428 <https://reviews.llvm.org/D73428>, it says that `noalias` is not just derived for all `readonly` arguments. In your example we access `unknown` memory, e.g., `**pA=42`, so case (1) cannot be applied. For case (2) we need to show that the loads of `pA` and `pB` do not alias, which we cannot.
That sounds good. Is there also a testcase (similar to D74935#1907100 <https://reviews.llvm.org/D74935#1907100> or D74935#1907939 <https://reviews.llvm.org/D74935#1907939> ) that explicitly checks that 'noalias' is not deduced ?
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