llvm-project/llvm/test/Analysis
Max Kazantsev 48d7cc6ae2 [SCEV] Fix incorrect treatment of max taken count. PR48225
SCEV makes a logical mistake when handling EitherMayExit in
case when both conditions must be met to exit the loop. The
mistake looks like follows: "if condition `A` fails within at most `X` first
iterations, and `B` fails within at most `Y` first iterations, then `A & B`
fails at most within `min (X, Y)` first iterations". This is wrong, because
both of them must fail at the same time.

Simple example illustrating this is following: we have an IV with step 1,
condition `A` = "IV is even", condition `B` = "IV is odd". Both `A` and `B`
will fail within first two iterations. But it doesn't mean that both of them
will fail within first two first iterations at the same time, which would mean
that IV is neither even nor odd at the same time within first 2 iterations.

We can only do so for known exact BE counts, but not for max.

Differential Revision: https://reviews.llvm.org/D91942
Reviewed By: nikic
2020-11-23 16:52:39 +07:00
..
AliasSet [NewPM] Port -print-alias-sets to NPM 2020-09-16 18:34:56 -07:00
AssumptionCache
BasicAA [BasicAA] Add more phi-phi tests (NFC) 2020-11-22 16:53:06 +01:00
BlockFrequencyInfo [NewPM] Pin -lazy-branch-prob and -lazy-block-freq tests to legacy PM 2020-09-21 17:51:46 -07:00
BranchProbabilityInfo [BPI] Look through bitcasts in calcZeroHeuristic 2020-11-17 09:33:05 -08:00
CFLAliasAnalysis [BasicAA] Rename -disable-basicaa to -disable-basic-aa to be consistent with the canonical name "basic-aa" 2020-06-26 20:55:44 -07:00
CallGraph [test][NewPM] Pin do-nothing-intrinsic.ll to legacy PM 2020-09-22 11:33:38 -07:00
CostModel [CostModel] add basic handling for FP maximum/minimum intrinsics 2020-11-22 13:43:53 -05:00
DDG [DDG] Data Dependence Graph - Graph Simplification 2020-02-19 13:41:51 -05:00
Delinearization [Delinearization][NewPM] Port delinearization to NPM 2020-09-21 17:59:08 -07:00
DemandedBits [DemandedBits][NewPM] Pin some tests to legacy PM 2020-09-15 11:55:58 -07:00
DependenceAnalysis [DependenceAnalysis][NewPM] Fix tests to work under NPM 2020-09-15 11:11:23 -07:00
DivergenceAnalysis OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
DominanceFrontier
Dominators [Dominators][NewPM] Pin tests with -analyze to legacy PM 2020-09-15 11:59:00 -07:00
FunctionPropertiesAnalysis Add new function properties to FunctionPropertiesAnalysis 2020-07-23 12:46:47 -07:00
GlobalsModRef [GlobalsAA] Teach to handle `addrspacecast`. 2020-11-09 00:04:52 -05:00
IRSimilarityIdentifier [IRSim] Adding wrapper pass for IRSimilarityIdentfier 2020-09-24 14:59:41 -05:00
IVUsers [SCEV] Strenthen nowrap flags after constant folding for mul exprs 2020-10-25 19:43:58 +01:00
LazyCallGraph [LazyCallGraph] Build SCCs of the reference graph in order 2020-11-02 13:22:42 -08:00
LazyValueAnalysis [JumpThreading] Make -print-lvi-after-jump-threading work with NPM 2020-11-17 23:15:20 -08:00
LegacyDivergenceAnalysis OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
Lint OpaquePtr: Update more tests to use typed sret 2020-11-20 20:08:43 -05:00
LoopAccessAnalysis [SCEV] Fix nsw flags for GEP expressions 2020-11-13 18:19:32 +01:00
LoopCacheAnalysis/PowerPC [LoopCacheAnalysis]: Add support for negative stride 2020-02-10 13:22:35 -05:00
LoopInfo [LoopInfo][NewPM] Fix tests in Analysis/LoopInfo under NPM 2020-09-22 11:31:00 -07:00
LoopNestAnalysis [LoopNest] False negative of `arePerfectlyNested` with LCSSA loops 2020-08-25 16:20:52 +00:00
MemoryDependenceAnalysis OpaquePtr: Update more tests to use typed sret 2020-11-20 20:08:43 -05:00
MemorySSA [MemorySSA] Add pointer decrement loop clobber test case. 2020-11-15 18:00:01 +00:00
MustExecute Port print-must-be-executed-contexts and print-mustexecute to NPM 2020-11-03 21:06:46 -08:00
PhiValues
PostDominators [PostDominators][NewPM] Fix tests to work under NPM 2020-09-15 11:19:01 -07:00
ProfileSummary
RegionInfo [RegionInfo][NewPM] Fix RegionInfo tests to work under NPM 2020-09-15 11:12:14 -07:00
ScalarEvolution [SCEV] Fix incorrect treatment of max taken count. PR48225 2020-11-23 16:52:39 +07:00
ScopedNoAliasAA Rename scoped-noalias -> scoped-noalias-aa 2020-07-24 12:14:27 -07:00
StackSafetyAnalysis OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
TypeBasedAliasAnalysis [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
ValueTracking OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
alias-analysis-uses.ll [NewPM] Pin tests with -debug-pass to legacy PM 2020-09-22 17:54:25 -07:00
lit.local.cfg [FileCheck] Disallow unused prefixes in llvm/test/Analysis 2020-11-19 07:56:35 -08:00