llvm-6502/test/Analysis/BasicAA
Arnold Schwaighofer 1bdb320dae BasicAA: Fix value equality and phi cycles
When there are cycles in the value graph we have to be careful interpreting
"Value*" identity as "value" equivalence. We interpret the value of a phi node
as the value of its operands.
When we check for value equivalence now we make sure that the "Value*" dominates
all cycles (phis).

%0 = phi [%noaliasval, %addr2]
%l = load %ptr
%addr1 = gep @a, 0, %l
%addr2 = gep @a, 0, (%l + 1)
store %ptr ...

Before this patch we would return NoAlias for (%0, %addr1) which is wrong
because the value of the load is from different iterations of the loop.

Tested on x86_64 -mavx at O3 and O3 -flto with no performance or compile time
regressions.

PR18068
radar://15653794

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198290 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-02 03:31:36 +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 BasicAA: Fix value equality and phi cycles 2014-01-02 03:31:36 +00:00
2006-11-03-BasicAAVectorCrash.ll
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
aligned-overread.ll
args-rets-allocas-loads.ll
byval.ll
cas.ll
constant-over-index.ll
dag.ll
empty.ll
featuretest.ll
full-store-partial-alias.ll
gcsetest.ll
gep-alias.ll Use correct size for address space in BasicAA. 2013-11-16 00:36:43 +00:00
getmodrefinfo-cs-cs.ll
global-size.ll Use correct size for address space in BasicAA. 2013-11-16 00:36:43 +00:00
intrinsics.ll
invariant_load.ll
memset_pattern.ll
modref.ll
must-and-partial.ll
no-escape-call.ll
noalias-geps.ll Use CHECK-LABEL 2013-09-30 23:31:55 +00:00
noalias-param.ll
nocapture.ll
phi-aa.ll BasicAA: Fix value equality and phi cycles 2014-01-02 03:31:36 +00:00
phi-and-select.ll
phi-spec-order.ll BasicAA: Fix value equality and phi cycles 2014-01-02 03:31:36 +00:00
phi-speculation.ll
pure-const-dce.ll
store-promote.ll
tailcall-modref.ll
underlying-value.ll
unreachable-block.ll