1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/Analysis
Florian Hahn 1cc7eb0b48 [BasicAA] Use known lower bounds for index values for size based check.
Currently, BasicAA does not exploit information about value ranges of
indexes. For example, consider the 2 pointers %a = %base and
%b = %base + %stride below, assuming they are used to access 4 elements.

If we know that %stride >= 4, we know the accesses do not alias. If
%stride is a constant, BasicAA currently gets that. But if the >= 4
constraint is encoded using an assume, it misses the NoAlias.

This patch extends DecomposedGEP to include an additional MinOtherOffset
field, which tracks the constant offset similar to the existing
OtherOffset, which the difference that it also includes non-negative
lower bounds on the range of the index value. When checking if the
distance between 2 accesses exceeds the access size, we can use this
improved bound.

For now this is limited to using non-negative lower bounds for indices,
as this conveniently skips cases where we do not have a useful lower
bound (because it is not constrained). We potential miss out in cases
where the lower bound is constrained but negative, but that can be
exploited in the future.

Reviewers: sanjoy, hfinkel, reames, asbirlea

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D76194
2020-05-30 16:20:42 +01:00
..
AliasSet [llvm] Fix missing FileCheck directive colons 2020-04-06 09:59:08 -06:00
AssumptionCache
BasicAA [BasicAA] Use known lower bounds for index values for size based check. 2020-05-30 16:20:42 +01:00
BlockFrequencyInfo
BranchProbabilityInfo [BrachProbablityInfo] Set edge probabilities at once and fix calcMetadataWeights() 2020-05-21 12:52:37 +07:00
CallGraph [Tests] Switch a few statepoint tests to using operand bundles 2020-05-28 14:36:05 -07:00
CFLAliasAnalysis
ConstantFolding [ConstantFolding] Constant folding for integer vector reduce intrinsics 2020-05-29 17:58:42 +01:00
CostModel [NFC][ARM][AArch64] More code size tests 2020-05-26 14:47:02 +01:00
DDG [DDG] Data Dependence Graph - Graph Simplification 2020-02-19 13:41:51 -05:00
Delinearization
DemandedBits
DependenceAnalysis Require "target datalayout" to be at the beginning of an IR file. 2020-04-20 11:55:49 -07:00
DivergenceAnalysis [AMDGPU] New llvm.amdgcn.ballot intrinsic 2020-03-31 10:35:39 +02:00
DominanceFrontier
Dominators
GlobalsModRef Revert a107f86 "[GlobalsAA] Add back a check to intrinsic_addresstaken.ll to see if the AVX and AVX512 bots still fail for it." 2020-01-24 13:15:23 -08:00
IVUsers
LazyCallGraph [Tests] Switch a few statepoint tests to using operand bundles 2020-05-28 14:36:05 -07:00
LazyValueAnalysis [LVI] Don't require DominatorTree in LVI (NFC) 2020-05-19 20:21:46 +02:00
LegacyDivergenceAnalysis Resubmit: [DA][TTI][AMDGPU] Add option to select GPUDA with TTI 2020-01-24 10:39:40 -08:00
Lint
LoopAccessAnalysis
LoopCacheAnalysis/PowerPC [LoopCacheAnalysis]: Add support for negative stride 2020-02-10 13:22:35 -05:00
LoopInfo
LoopNestAnalysis [LoopNest]: Analysis to discover properties of a loop nest. 2020-03-03 18:25:19 +00:00
MemoryDependenceAnalysis Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
MemorySSA StoreInst should store Align, not MaybeAlign 2020-05-15 12:26:58 -07:00
MustExecute Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
PhiValues
PostDominators
ProfileSummary
RegionInfo
ScalarEvolution [SCEV] Constant fold MultExpr before applying depth limit. 2020-05-22 18:34:32 +03:00
ScopedNoAliasAA
StackSafetyAnalysis [StackSafety] Don't run datafow on allocas 2020-05-28 13:32:57 -07:00
TypeBasedAliasAnalysis Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
ValueTracking Make Value::getPointerAlignment() return an Align, not a MaybeAlign. 2020-05-20 16:37:20 -07:00
alias-analysis-uses.ll