llvm/test/Analysis/BasicAA
Hal Finkel c37f502d48 Phi speculation improvement for BasicAA
This is a partial solution to PR14351. It removes some of the special
significance of the first incoming phi value in the phi aliasing checking logic
in BasicAA. In the context of a loop, the old logic assumes that the first
incoming value is the interesting one (meaning that it is the one that comes
from outside the loop), but this is often not the case.  With this change, we
now test first the incoming value that comes from a block other than the parent
of the phi being tested.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168245 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17 02:33:15 +00:00
..
2003-02-26-AccessSizeTest.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
2003-03-04-GEPCrash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-04-22-GEPProblem.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
2003-04-25-GEPCrash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-05-21-GEP-Problem.ll Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00
2003-06-01-AliasCrash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-07-03-BasicAACrash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-09-19-LocalArgument.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
2003-11-04-SimpleCases.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
2003-12-11-ConstExprGEP.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
2004-07-28-MustAliasbug.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
2006-03-03-BadArraySubscript.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
2006-11-03-BasicAAVectorCrash.ll Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00
2007-01-13-BasePointerBadNoAlias.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
2007-08-01-NoAliasAndCalls.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
2007-08-01-NoAliasAndGEP.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
2007-08-05-GetOverloadedModRef.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
2007-10-24-ArgumentsGlobals.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
2007-11-05-SizeCrash.ll Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00
2007-12-08-OutOfBoundsCrash.ll Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00
2008-04-15-Byval.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
2008-06-02-GEPTailCrash.ll Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00
2008-11-23-NoaliasRet.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
2009-03-04-GEPNoalias.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
2009-10-13-AtomicModRef.ll Enhance alias analysis for atomic instructions a bit. Upgrade a couple alias-analysis tests to the new atomic instructions. 2011-09-26 20:15:28 +00:00
2009-10-13-GEP-BaseNoAlias.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
2010-09-15-GEP-SignedArithmetic.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
aligned-overread.ll Teach BasicAA about the LLVM IR rules that allow reading past the end of an object given sufficient alignment. Fixes PR12098. 2012-02-27 20:46:07 +00:00
args-rets-allocas-loads.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
byval.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
cas.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
constant-over-index.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
dag.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
empty.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
featuretest.ll fix PR7589: In brief: 2010-08-18 04:28:19 +00:00
full-store-partial-alias.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
gcsetest.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
gep-alias.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
getmodrefinfo-cs-cs.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
global-size.ll Duncan pointed out that if the alignment isn't explicitly specified, it defaults to the ABI alignment. Given that, make this code a bit more aggressive in such cases. 2012-02-27 23:16:46 +00:00
intrinsics.ll Teach BasicAA about arm.neon.vld1 and vst1. 2011-04-27 20:44:28 +00:00
lit.local.cfg Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
memset_pattern.ll Teach BasicAA about the aliasing properties of memset_pattern16. 2011-09-06 23:33:25 +00:00
modref.ll PR10628: Fix getModRefInfo so it queries the underlying alias() implementation correctly while checking nocapture calls. 2011-09-28 00:34:27 +00:00
must-and-partial.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
no-escape-call.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
noalias-geps.ll BasicAA: GEPs of NoAlias'ing base ptr with equivalent indices are NoAlias 2012-09-06 14:31:51 +00:00
nocapture.ll Don't infer whether a value is captured in the current function from the 2012-11-05 10:48:24 +00:00
phi-aa.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
phi-and-select.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
phi-spec-order.ll Phi speculation improvement for BasicAA 2012-11-17 02:33:15 +00:00
phi-speculation.ll BasicAA: Recognize cyclic NoAlias phis 2012-09-06 14:41:53 +00:00
pure-const-dce.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
store-promote.ll PR9634: Don't unconditionally tell the AliasSetTracker that the PreheaderLoad 2011-04-07 01:35:06 +00:00
tailcall-modref.ll FileCheck-ize these tests. Harden some of them. 2012-04-24 09:15:38 +00:00
underlying-value.ll Make DecomposeGEPExpression check SimplifyInstruction only 2011-05-24 18:24:08 +00:00
unreachable-block.ll Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00