llvm-project/llvm/test/Analysis
Congzhe Cao 76be554931 [DependenceAnalysis][PR56275] Normalize negative dependence analysis results
This patch is the first of the two-patch series (D130188, D130179) that
resolve PR56275 (https://github.com/llvm/llvm-project/issues/56275)
which is a missed opportunity, where a perfrectly valid case for loop
interchange failed interchange legality.

If the distance/direction vector produced by dependence analysis (DA) is
negative, it needs to be normalized (reversed). This patch provides helper
functions `isDirectionNegative()` and `normalize()` in DA that does the
normalization, and clients can query DA to do normalization if needed.

A pass option `<normalized-results>` is added to DependenceAnalysisPrinterPass,
and we leverage it to update DA test cases to make sure of test coverage. The
test cases added in `Banerjee.ll` shows that negative vectors are normalized
with `print<da><normalized-results>`.

Reviewed By: bmahjour, Meinersbur, #loopoptwg

Differential Revision: https://reviews.llvm.org/D130188
2022-08-03 19:59:00 -04:00
..
AliasSet
AssumptionCache
BasicAA [AA] Do not track Must in ModRefInfo 2022-08-01 07:14:31 +02:00
BlockFrequencyInfo
BranchProbabilityInfo
CallGraph
CFLAliasAnalysis
CostModel [CostModel][RISCV] Add test coverage of floating point rounding intrinsics 2022-08-03 16:51:43 -07:00
CycleInfo
DDG
Delinearization
DemandedBits
DependenceAnalysis [DependenceAnalysis][PR56275] Normalize negative dependence analysis results 2022-08-03 19:59:00 -04:00
DivergenceAnalysis
DominanceFrontier
Dominators
FunctionPropertiesAnalysis
GlobalsModRef tests: add attributes that would normally come from inferattrs 2022-07-25 17:29:00 -04:00
IRSimilarityIdentifier
IVUsers
LazyCallGraph
LazyValueAnalysis
LegacyDivergenceAnalysis
Lint
LoopAccessAnalysis [Test] Fix block name in test 2022-07-28 13:42:14 +07:00
LoopCacheAnalysis [LoopCacheAnalysis] Fix a type mismatch problem in cost calculation 2022-07-21 01:57:05 -04:00
LoopInfo
LoopNestAnalysis
MemoryDependenceAnalysis
MemorySSA [AA] Do not track Must in ModRefInfo 2022-08-01 07:14:31 +02:00
MustExecute
PhiValues
PostDominators
ProfileSummary
RegionInfo
ScalarEvolution [ConstExpr] Don't create div/rem expressions 2022-07-05 15:54:53 +02:00
ScopedNoAliasAA
StackSafetyAnalysis
TypeBasedAliasAnalysis [Intrinsics] Add nocallback to the memset/cpy/move intrinsics 2022-07-21 22:52:46 -05:00
ValueTracking [InstCombine] Improve folding of mul + icmp 2022-07-22 22:08:53 +00:00
alias-analysis-uses.ll