llvm-project/llvm/test/Analysis
David Green a655393f17 [ARM] Add MVE beats vector cost model
The MVE architecture has the idea of "beats", where a vector instruction can be
executed over several ticks of the architecture. This adds a similar system
into the Arm backend cost model, multiplying the cost of all vector
instructions by a factor.

This factor essentially becomes the expected difference between scalar code
and vector code, on average. MVE Vector instructions can also overlap so the a
true cost of them is often lower. But equally scalar instructions can in some
situations be dual issued, or have other optimisations such as unrolling or
make use of dsp instructions. The default is chosen as 2. This should not
prevent vectorisation is a most cases (as the vector instructions will still be
doing at least 4 times the work), but it will help prevent over vectorising in
cases where the benefits are less likely.

This adds things so far to the obvious places in ARMTargetTransformInfo, and
updates a few related costs like not treating float instructions as cost 2 just
because they are floats.

Differential Revision: https://reviews.llvm.org/D66005

llvm-svn: 368733
2019-08-13 18:12:08 +00:00
..
AliasSet [Analysis] Make LocationSize pretty-printing more descriptive 2018-10-10 01:35:22 +00:00
AssumptionCache
BasicAA [FunctionAttrs] Annotate "willreturn" for intrinsics 2019-07-28 06:09:56 +00:00
BlockFrequencyInfo [BFI] Use rounding while computing profile counts. 2018-08-16 00:26:59 +00:00
BranchProbabilityInfo [BPI] Look through bitcasts in calcZeroHeuristic 2019-02-15 11:50:21 +00:00
CFLAliasAnalysis [CFLGraph] Add support for unary fneg instruction. 2019-06-06 19:21:23 +00:00
CallGraph
ConstantFolding Fix pointer width in test from r366754. 2019-07-22 23:32:41 +00:00
CostModel [ARM] Add MVE beats vector cost model 2019-08-13 18:12:08 +00:00
Delinearization Re-apply "[SCEV] Strengthen StrengthenNoWrapFlags (reapply r334428)." 2018-07-13 23:58:46 +00:00
DemandedBits Reapply "[DemandedBits][BDCE] Support vectors of integers" 2018-12-07 15:38:13 +00:00
DependenceAnalysis [DA] Add an option to control delinearization validity checks 2019-06-10 15:29:07 +00:00
DivergenceAnalysis [AMDGPU] ImmArg and SourceOfDivergence for permlane/dpp 2019-06-13 16:31:51 +00:00
DominanceFrontier IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
Dominators
GlobalsModRef
IVUsers Re-apply "[SCEV] Strengthen StrengthenNoWrapFlags (reapply r334428)." 2018-07-13 23:58:46 +00:00
LazyCallGraph [LCG] Add aliased functions as LCG roots 2019-04-05 18:51:08 +00:00
LazyValueAnalysis [LVI] run transfer function for binary operator even when the RHS isn't a constant 2018-11-21 05:24:12 +00:00
LegacyDivergenceAnalysis [AMDGPU] Add support for 64 bit buffer atomic artihmetic instructions 2019-03-06 17:02:06 +00:00
Lint [Lint] Permit aliasing noalias readonly arguments 2019-04-23 23:43:47 +00:00
LoopAccessAnalysis Revert "[IRBuilder] Fold consistently for or/and whether constant is LHS or RHS" 2019-07-07 22:12:01 +00:00
LoopCacheAnalysis/PowerPC Title: Improve Loop Cache Analysis LIT tests. 2019-08-09 16:18:22 +00:00
LoopInfo Introduce llvm.loop.parallel_accesses and llvm.access.group metadata. 2018-12-20 04:58:07 +00:00
MemoryDependenceAnalysis [AliasAnalysis/NewPassManager] Invalidate AAManager less often. 2019-04-30 22:15:47 +00:00
MemorySSA [MemorySSA] Add additional verification for phis. 2019-07-31 17:41:04 +00:00
MustExecute [MustExecute] Improve MustExecute to correctly handle loop nest 2019-05-27 13:57:28 +00:00
PhiValues Add a PhiValuesAnalysis pass to calculate the underlying values of phis 2018-06-28 14:13:06 +00:00
PostDominators
ProfileSummary [ProfileSummary] Add options to override hot and cold count thresholds. 2018-11-02 17:39:31 +00:00
RegionInfo IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
ScalarEvolution [SCEV] add no wrap flag for SCEVAddExpr. 2019-07-18 09:23:19 +00:00
ScopedNoAliasAA
StackSafetyAnalysis [stack-safety] Inter-Procedural Analysis implementation 2018-11-26 23:05:58 +00:00
TypeBasedAliasAnalysis [SimplifyLibCalls] Add noalias from known callsites 2019-08-13 17:18:46 +00:00
ValueTracking [IR][Verifier] Allow IntToPtrInst to be !dereferenceable 2019-07-23 17:19:56 +00:00
alias-analysis-uses.ll