]> granicus.if.org Git - llvm/commit
[CFLAA] Handle global/arg attrs more sanely.
authorGeorge Burgess IV <george.burgess.iv@gmail.com>
Thu, 9 Jun 2016 23:15:04 +0000 (23:15 +0000)
committerGeorge Burgess IV <george.burgess.iv@gmail.com>
Thu, 9 Jun 2016 23:15:04 +0000 (23:15 +0000)
commitbec2df684fda75a1120ba2eeac45ee438595739e
treeb60e190ff68d79071f3dbb3b6ce719df73e61e94
parentaf4c28d141504a4283d93b2236ec3b6eed9b5d80
[CFLAA] Handle global/arg attrs more sanely.

Prior to this patch, we used argument/global stratified attributes in
order to note that a value could have come from either dereferencing a
global/arg, or from the assignment from a global/arg.

Now, AttrUnknown is placed on sets when we see a dereference, instead of
the global/arg attributes. This allows us to be more aggressive in the
future when we see global/arg attributes without AttrUnknown.

Patch by Jia Chen.

Differential Revision: http://reviews.llvm.org/D21110

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272335 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/CFLAliasAnalysis.cpp
lib/Analysis/StratifiedSets.h
test/Analysis/CFLAliasAnalysis/attr-escape.ll