[llvm-dev] Propagating noalias annotation
Hal Finkel via llvm-dev
llvm-dev at lists.llvm.org
Thu Nov 16 23:55:12 PST 2017
On 11/17/2017 01:49 AM, Hongbin Zheng wrote:
> Could you elaborate "Note that, without further analysis of the uses
> of the potentially-noalias pointers, you can do this only ..."?
> Why the uses, instead of the def, of pointer matter?
Both matter.
static int foo(int *a, int *b) {
return a[0] + b[1];
}
int bar(int *x) {
return foo(x+1, x);
}
You can't mark a and b as noalias here, even though NoAlias(x+1, x) ==
true. This is why I was saying that, unless the pointers come from
distinct, identified underlying objects, you need to look at the uses of
the pointers too.
-Hal
P.S. As discussed in D4609, we probably want to try adding CGSCC AA
wrappers, to look back through function arguments, instead of using
attribute propagation.
>
> Thanks
> Hongbin
>
> On Thu, Nov 16, 2017 at 11:21 PM, Hal Finkel via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
> Hi, Alexandre,
>
> We don't have anything currently which does this. Note that,
> without further analysis of the uses of the potentially-noalias
> pointers, you can do this only for arguments with distinct (and
> identified) underlying objects (i.e., you need something a bit
> stronger than just "non-aliasing pointers").
>
> -Hal
>
>
> On 11/16/2017 10:11 AM, via llvm-dev wrote:
>
> Is this what you are looking for?
>
> https://reviews.llvm.org/D4609
>
> Best,
>
> Haicheng Wu
>
> On 2017-11-14 20:34, Alexandre Isoard via llvm-dev wrote:
>
> Hello,
>
> Do we have a pass that propagate the noalias annotation
> down to the
> callee when:
> - it is static
> - it is always called with non aliasing pointers
> ?
>
> Or maybe that is incorrect?
>
> --
>
> ALEXANDRE ISOARD
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>
>
> --
> Hal Finkel
> Lead, Compiler Technology and Programming Languages
> Leadership Computing Facility
> Argonne National Laboratory
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>
>
--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171117/0226b3c0/attachment.html>
More information about the llvm-dev
mailing list