[PATCH] llvm.noalias - The AA implementaton

hfinkel at anl.gov hfinkel at anl.gov
Thu Apr 30 09:28:51 PDT 2015


Hi chandlerc, reames, dberlin,

This is part of the series started by D9375, and adds the actual AA implementation which uses the intrinsics.

Roughly, we need to check for an access through pointer derived from a llvm.noalias call, which compatible noalias metadata, where the other access also has compatible metadata, but is not derived from that llvm.noalias call (or any other with the same scope). This needs to include the possibility that the pointer has been captured and we're deriving from some use of the captured pointer. Precise capturing analysis requires a DT to be available, and if it is not, and there are captures, the answers will not be as good (as demonstrated by the noalias-dup-scope.ll test case). When looking for compatible llvm.noalias calls, we might need to look through others. If we hit a PHI or select, we need to combine the compatibility results from all possible inputs.

http://reviews.llvm.org/D9401

Files:
  lib/Analysis/ScopedNoAliasAA.cpp
  test/Analysis/ScopedNoAliasAA/noalias-calls.ll
  test/Analysis/ScopedNoAliasAA/noalias-dup-scope.ll
  test/Analysis/ScopedNoAliasAA/noalias.ll
  test/Analysis/ScopedNoAliasAA/noalias2.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9401.24740.patch
Type: text/x-patch
Size: 56750 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150430/3d7851d2/attachment.bin>


More information about the llvm-commits mailing list