]> granicus.if.org Git - llvm/commit
[BasicAA] Use dereferenceability to reason about aliasing
authorJohannes Doerfert <jdoerfert@anl.gov>
Fri, 23 Aug 2019 17:56:10 +0000 (17:56 +0000)
committerJohannes Doerfert <jdoerfert@anl.gov>
Fri, 23 Aug 2019 17:56:10 +0000 (17:56 +0000)
commit88c30ca9a259f1afce0de60e59199bd7f93ddf37
treed943da268e34df322693a2dff8442dc768dc4774
parent98e18d4f0ff09aa36adebd60ec6c5fe5f9a0ef39
[BasicAA] Use dereferenceability to reason about aliasing

Summary:
We already use the fact that an object with known size X does not alias
another objection of size Y > X before. With this commit, we use
dereferenceability information to determine a lower bound for Y and not
only rely on the user provided query size.

The result for @global_and_deref_arg_2() and @local_and_deref_ret_2()
in test/Analysis/BasicAA/dereferenceable.ll improved with this patch.

Reviewers: asbirlea, chandlerc, hfinkel, sanjoy

Subscribers: hiraditya, bollu, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66157

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@369786 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/BasicAliasAnalysis.cpp
test/Analysis/BasicAA/dereferenceable.ll [new file with mode: 0644]