llvm-project/llvm/test/Analysis
Max Kazantsev fc539b0004 [SCEV] Infer ranges for SCC consisting of cycled Phis
Our current strategy of computing ranges of SCEVUnknown Phis was to simply
compute the union of ranges of all its inputs. In order to avoid infinite recursion,
we mark Phis as pending and conservatively return full set for them. As result,
even simplest patterns of cycled phis always have a range of full set.

This patch makes this logic a bit smarter. We basically do the same, but instead
of taking inputs of single Phi we find its strongly connected component (SCC)
and compute the union of all inputs that come into this SCC from outside.

Processing entire SCC together has one more advantage: we can set range for all
of them at once, because the only thing that happens to them is the same value is
being passed between those Phis. So, despite we spend more time analyzing a
single Phi, overall we may save time by not processing other SCC members, so
amortized compile time spent should be approximately the same.

Differential Revision: https://reviews.llvm.org/D110620
Reviewed By: reames
2022-02-17 18:03:52 +07:00
..
AliasSet
AssumptionCache
BasicAA [BasicAA] Add support for memmove intrinsic 2022-01-28 18:19:36 +07:00
BlockFrequencyInfo [test][NewPM] Remove RUN lines using -analyze 2021-09-02 11:38:14 -07:00
BranchProbabilityInfo [BPI] Look-up tables for non-loop branches. NFC. 2021-11-22 10:30:42 +00:00
CFLAliasAnalysis
CallGraph [Statepoint] Update gc.statepoint calls in tests with elementtype (NFC) 2022-02-04 14:15:41 +01:00
CostModel [SchedModels][CortexA55] Add ASIMD integer instructions 2022-02-17 13:41:57 +03:00
CycleInfo [test] Replace/remove some 'opt -analyze' RUN lines 2022-02-09 15:49:53 -08:00
DDG
Delinearization [test] Remove one more unnecessary -analyze RUN line 2022-02-09 16:05:43 -08:00
DemandedBits [test][NewPM] Remove RUN lines using -analyze 2021-09-02 11:38:14 -07:00
DependenceAnalysis [SCEV] Infer flags from add/gep in any block 2021-10-06 11:11:54 -07:00
DivergenceAnalysis [test][NewPM] Remove RUN lines using -analyze 2021-09-02 11:38:14 -07:00
DominanceFrontier
Dominators Introduce NewPM .dot printers for DomTree 2022-01-05 23:25:40 +00:00
FunctionPropertiesAnalysis
GlobalsModRef [GlobalsModRef] Apply indirect-global rule to all globals initialized from noalias calls 2022-01-11 08:44:31 -08:00
IRSimilarityIdentifier [IRSim] Adding support for recognizing branch similarity 2021-09-06 11:55:38 -07:00
IVUsers [test][NewPM] Remove RUN lines using -analyze 2021-09-02 11:38:14 -07:00
LazyCallGraph [Statepoint] Update gc.statepoint calls in tests with elementtype (NFC) 2022-02-04 14:15:41 +01:00
LazyValueAnalysis
LegacyDivergenceAnalysis [test] Replace `-analyze -divergence` with `-passes='print<divergence>'` 2022-02-09 16:09:14 -08:00
Lint
LoopAccessAnalysis [test] Replace/remove some 'opt -analyze' RUN lines 2022-02-09 15:49:53 -08:00
LoopCacheAnalysis/PowerPC [SCEV] Use full logic when infering flags on add and gep 2021-10-03 15:32:15 -07:00
LoopInfo [test][NewPM] Remove RUN lines using -analyze 2021-09-02 11:38:14 -07:00
LoopNestAnalysis [LoopNest] Consider loop nest with inner loop guard using outer loop 2021-05-07 16:04:18 +00:00
MemoryDependenceAnalysis [MemoryDependency] Relax the re-ordering of atomic store and unordered load/store 2022-02-17 10:53:25 +07:00
MemorySSA [NFC][llvm] Inclusive language: reword uses of sanity test and check 2021-11-25 07:21:42 -05:00
MustExecute
PhiValues
PostDominators [test][NewPM] Remove RUN lines using -analyze 2021-09-02 11:38:14 -07:00
ProfileSummary
RegionInfo [test][NewPM] Remove RUN lines using -analyze 2021-09-02 11:38:14 -07:00
ScalarEvolution [SCEV] Infer ranges for SCC consisting of cycled Phis 2022-02-17 18:03:52 +07:00
ScopedNoAliasAA
StackSafetyAnalysis [stack-safety] Check SCEV constraints at memory instructions. 2021-11-23 15:29:23 -08:00
TypeBasedAliasAnalysis [funcattrs] Infer writeonly argument attribute [part 2] 2022-01-04 09:07:54 -08:00
ValueTracking [Statepoint] Update gc.statepoint calls in tests with elementtype (NFC) 2022-02-04 14:15:41 +01:00
alias-analysis-uses.ll