llvm-6502/test/Analysis
Tobias Edler von Koch 3659b8adc9 Analyze recursive PHI nodes in BasicAA
Summary:
This patch allows phi nodes like
  %x = phi [ %incptr, ... ] [ %var, ... ]
  %incptr = getelementptr %x, 1
to be analyzed by BasicAliasAnalysis.

In aliasPHI, we can detect incoming values that are recursive GEPs with a
constant offset. Instead of trying to analyze a recursive GEP (and failing), 
we now ignore it and instead set the size of the memory referenced by
the PHINode to UnknownSize. This represents all the possible memory
locations the pointer represented by the PHINode could be advanced to
by the GEP.

For now, this new behavior is turned off by default to allow debugging of
performance degradations seen with SPEC/x86 and Hexagon benchmarks.
The flag -basicaa-recphi turns it on.


Reviewers: hfinkel, sanjoy

Subscribers: tobiasvk_caf, sanjoy, llvm-commits

Differential Revision: http://reviews.llvm.org/D10368

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242320 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-15 19:32:22 +00:00
..
AssumptionCache [PM] Actually add the new pass manager support for the assumption cache. 2015-01-22 21:53:09 +00:00
BasicAA Analyze recursive PHI nodes in BasicAA 2015-07-15 19:32:22 +00:00
BlockFrequencyInfo Add documentation for new backedge mass propagation in irregular loops. 2015-06-17 16:28:22 +00:00
BranchProbabilityInfo Fix information loss in branch probability computation. 2015-05-07 17:22:06 +00:00
CallGraph [CallGraph] Given -print-callgraph a stable printing order. 2015-06-19 23:20:31 +00:00
CFLAliasAnalysis [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
CostModel [X86][SSE] Vectorized v4i32 non-uniform shifts. 2015-07-12 11:15:19 +00:00
Delinearization Fix a type mismatch assert in SCEV division 2015-04-22 15:06:40 +00:00
DependenceAnalysis [DependenceAnalysis] Extend unifySubscriptType for handling coupled subscript groups. 2015-05-29 16:58:08 +00:00
DivergenceAnalysis/NVPTX Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
Dominators Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
GlobalsModRef [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
LazyCallGraph [LazyCallGraph] Port test case from r240039 to LCG. 2015-07-02 02:03:58 +00:00
Lint Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
LoopAccessAnalysis Cleanup after r241809 - remove uncessary call to std::sort 2015-07-13 14:48:24 +00:00
LoopInfo [PM] Port LoopInfo to the new pass manager, adding both a LoopAnalysis 2015-01-20 10:58:50 +00:00
MemoryDependenceAnalysis [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
PostDominators FileCheck-ize tests. 2013-08-22 00:51:19 +00:00
RegionInfo [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
ScalarEvolution [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
ScopedNoAliasAA [Testsuite] Renumber metadata in ScopedNoAliasAA test to match CHECK lines 2015-05-11 09:10:14 +00:00
TypeBasedAliasAnalysis [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
ValueTracking [ValueTracking] do not overwrite analysis results already computed 2015-06-15 05:46:29 +00:00