[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