llvm-project/llvm/test/Analysis/BasicAA
David Green 311fafd2c9 [BasicAA] Fix -basicaa-recphi for geps with negative offsets
As shown in D82998, the basic-aa-recphi option can cause miscompiles for
gep's with negative constants. The option checks for recursive phi, that
recurse through a contant gep. If it finds one, it performs aliasing
calculations using the other phi operands with an unknown size, to
specify that an unknown number of elements after the initial value are
potentially accessed. This works fine expect where the constant is
negative, as the size is still considered to be positive. So this patch
expands the check to make sure that the constant is also positive.

Differential Revision: https://reviews.llvm.org/D83576
2020-07-16 17:22:40 +01:00
..
128-bit-ptr.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2003-02-26-AccessSizeTest.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2003-03-04-GEPCrash.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2003-04-22-GEPProblem.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2003-04-25-GEPCrash.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2003-05-21-GEP-Problem.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2003-06-01-AliasCrash.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2003-07-03-BasicAACrash.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2003-09-19-LocalArgument.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2003-11-04-SimpleCases.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2003-12-11-ConstExprGEP.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2004-07-28-MustAliasbug.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2006-03-03-BadArraySubscript.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2006-11-03-BasicAAVectorCrash.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2007-01-13-BasePointerBadNoAlias.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2007-08-01-NoAliasAndCalls.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2007-08-01-NoAliasAndGEP.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2007-08-05-GetOverloadedModRef.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2007-10-24-ArgumentsGlobals.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2007-11-05-SizeCrash.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2007-12-08-OutOfBoundsCrash.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2008-04-15-Byval.ll
2008-06-02-GEPTailCrash.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2008-11-23-NoaliasRet.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2009-03-04-GEPNoalias.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2009-10-13-AtomicModRef.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2009-10-13-GEP-BaseNoAlias.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2010-09-15-GEP-SignedArithmetic.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
2014-03-18-Maxlookup-reached.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
aligned-overread.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
args-rets-allocas-loads.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
assume-index-positive.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
assume.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
bug.23540.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
bug.23626.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
byval.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
call-attrs.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
cas.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
constant-over-index.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
cs-cs-arm.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
cs-cs.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
dag.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
dereferenceable.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
empty.ll [BasicAA] Remove -basicaa alias 2020-07-07 10:44:23 -07:00
fallback-mayalias.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
featuretest.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
full-store-partial-alias.ll [BasicAA] Rename -disable-basicaa to -disable-basic-aa to be consistent with the canonical name "basic-aa" 2020-06-26 20:55:44 -07:00
gcsetest.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
gep-alias.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
gep-and-alias-64.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
gep-and-alias.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
getmodrefinfo-cs-cs.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
global-size.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
guards.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
intrinsics-arm.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
intrinsics.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
invalidation.ll
invariant_group.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
invariant_load.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
memset_pattern.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
modref.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
must-and-partial.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
negoffset.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
no-escape-call.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
noalias-bugs.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
noalias-geps.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
noalias-param.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
noalias-wraparound-bug.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
nocapture.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
phi-aa.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
phi-and-select.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
phi-loop.ll Revert "[BasicAA] Enable -basic-aa-recphi by default" 2020-07-10 13:43:54 +01:00
phi-spec-order.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
phi-speculation.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
phi-values-usage.ll [BasicAA] Make BasicAA a cfg pass. 2020-02-11 11:30:08 -08:00
pr18573.ll
pr31761.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
pr35821.ll
pr35843.ll
ptrmask.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
pure-const-dce.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
q.bad.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
recphi.ll [BasicAA] Fix -basicaa-recphi for geps with negative offsets 2020-07-16 17:22:40 +01:00
returned.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
sequential-gep.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
store-promote.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
struct-geps.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
tail-byval.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
tailcall-modref.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
underlying-value.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
unreachable-block.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
vscale.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00
zext.ll [NewPM][BasicAA] basicaa -> basic-aa in Analysis/BasicAA 2020-06-26 14:58:01 -07:00