llvm-project/llvm/test/Analysis/BasicAA
Johannes Doerfert 22e6e108e1 [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

llvm-svn: 369786
2019-08-23 17:56:10 +00:00
..
128-bit-ptr.ll [BasicAA] Support arbitrary pointer sizes (and fix an overflow bug) 2019-01-02 16:28:09 +00:00
2003-02-26-AccessSizeTest.ll
2003-03-04-GEPCrash.ll
2003-04-22-GEPProblem.ll
2003-04-25-GEPCrash.ll
2003-05-21-GEP-Problem.ll
2003-06-01-AliasCrash.ll
2003-07-03-BasicAACrash.ll
2003-09-19-LocalArgument.ll
2003-11-04-SimpleCases.ll
2003-12-11-ConstExprGEP.ll
2004-07-28-MustAliasbug.ll
2006-03-03-BadArraySubscript.ll
2006-11-03-BasicAAVectorCrash.ll [PPC] Remove Darwin support from POWER backend. 2018-08-28 01:18:29 +00:00
2007-01-13-BasePointerBadNoAlias.ll
2007-08-01-NoAliasAndCalls.ll
2007-08-01-NoAliasAndGEP.ll
2007-08-05-GetOverloadedModRef.ll
2007-10-24-ArgumentsGlobals.ll
2007-11-05-SizeCrash.ll
2007-12-08-OutOfBoundsCrash.ll
2008-04-15-Byval.ll
2008-06-02-GEPTailCrash.ll
2008-11-23-NoaliasRet.ll
2009-03-04-GEPNoalias.ll
2009-10-13-AtomicModRef.ll
2009-10-13-GEP-BaseNoAlias.ll
2010-09-15-GEP-SignedArithmetic.ll
2014-03-18-Maxlookup-reached.ll
aligned-overread.ll
args-rets-allocas-loads.ll [ModRefInfo] Add must alias info to ModRefInfo. 2017-12-21 21:41:53 +00:00
assume.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
bug.23540.ll
bug.23626.ll
byval.ll
call-attrs.ll [ModRefInfo] Add must alias info to ModRefInfo. 2017-12-21 21:41:53 +00:00
cas.ll
constant-over-index.ll
cs-cs-arm.ll [ModRefInfo] Add must alias info to ModRefInfo. 2017-12-21 21:41:53 +00:00
cs-cs.ll [FunctionAttrs] Annotate "willreturn" for intrinsics 2019-07-28 06:09:56 +00:00
dag.ll
dereferenceable.ll [BasicAA] Use dereferenceability to reason about aliasing 2019-08-23 17:56:10 +00:00
empty.ll
fallback-mayalias.ll
featuretest.ll
full-store-partial-alias.ll
gcsetest.ll
gep-alias.ll
gep-and-alias-64.ll [BasicAA] Support arbitrary pointer sizes (and fix an overflow bug) 2019-01-02 16:28:09 +00:00
gep-and-alias.ll [BasicAA] Support arbitrary pointer sizes (and fix an overflow bug) 2019-01-02 16:28:09 +00:00
getmodrefinfo-cs-cs.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
global-size.ll
guards.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
intrinsics-arm.ll
intrinsics.ll [FunctionAttrs] Annotate "willreturn" for intrinsics 2019-07-28 06:09:56 +00:00
invalidation.ll [BasicAA] Use PhiValuesAnalysis if available when handling phi alias 2018-07-30 11:52:08 +00:00
invariant_group.ll [BasicAA] Fix handling of invariant group launders 2018-05-16 13:16:54 +00:00
invariant_load.ll
memset_pattern.ll
modref.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
must-and-partial.ll
negoffset.ll [BasicAA] Return MayAlias for the pointer plus variable offset to 2018-04-16 01:58:39 +00:00
no-escape-call.ll
noalias-bugs.ll
noalias-geps.ll
noalias-param.ll
noalias-wraparound-bug.ll
nocapture.ll
phi-aa.ll [BasicAA] Use PhiValuesAnalysis if available when handling phi alias 2018-07-30 11:52:08 +00:00
phi-and-select.ll
phi-loop.ll
phi-spec-order.ll
phi-speculation.ll
phi-values-usage.ll [PhiValues] Use callback value handles to invalidate deleted values 2018-08-24 15:48:30 +00:00
pr18573.ll
pr31761.ll
pr35821.ll [BasicAA] Fix linearization of shifts beyond the bitwidth. 2018-01-05 16:18:47 +00:00
pr35843.ll [BasicAA] Stop crashing when dealing with pointers > 64 bits. 2018-01-15 01:40:18 +00:00
ptrmask.ll [ValueTracking] Look through ptrmask intrinsics during getUnderlyingObject. 2019-08-15 18:39:56 +00:00
pure-const-dce.ll
q.bad.ll
returned.ll
sequential-gep.ll
store-promote.ll [LoopPassManager + MemorySSA] Only enable use of MemorySSA for LPMs known to preserve it. 2019-08-21 17:00:57 +00:00
struct-geps.ll
tail-byval.ll [BasicAA] Don't assume tail calls with byval don't alias allocas 2018-08-14 01:24:35 +00:00
tailcall-modref.ll
underlying-value.ll
unreachable-block.ll
zext.ll