[PATCH] D74935: [LangRef][AliasAnalysis] Clarify `noalias` affects only modified objects

Jeroen Dobbelaere via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 10 11:25:18 PDT 2020


jeroen.dobbelaere added a comment.

In D74935#1909909 <https://reviews.llvm.org/D74935#1909909>, @jdoerfert wrote:

> I would say that once we get modeling for indirect restrict we can adapt the lang ref accordingly. For now there is only have outer level restrict/noalias.


Why not try to get right now ? The first reason that you give for the change in wording is

> '1. To match the restrict semantics when we lower it to noalias.'

Currently there is no mechanism to accurately describe nested restrict pointers in LLVM-IR. imho, that means that
we should adapt the wording in a more specific way. Something like:

    This guarantee only holds for memory locations that are *modified*, by any means, during the execution the function.
  + Note that, just like C99 restrict, in this context, memory locations whose content is used as a pointer value to modify a memory location,
  + are also considered to modify the former memory locations.
    The attribute....

> 
> 
>>> 2. The extended `noalias` deduction D73428 <https://reviews.llvm.org/D73428>.

[..]

>> 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 ?
> 
> I'll add one :)

thanks !


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74935/new/

https://reviews.llvm.org/D74935





More information about the llvm-commits mailing list