llvm-project/llvm/lib/Transforms/Vectorize
Huihui Zhang fc1f205745 [SLPVectorizer][SVE] Bail out early for scalable vector.
Summary:
SLPVectorizer try to vectorize list of scalar instructions of the same type,
instructions already vectorized are rejected through isValidElementType().

Without this patch, tryToVectorizeList() will first try to determine vectorization
factor of a list of Instructions before checking whether each instruction has unsupported
type or not. For instructions already vectorized for SVE, it will crash at getVectorElementSize(),
where it try to return a fixed size.

This patch make sure invalid element types are rejected before trying to get vectorization
factor. This make sure we are not trying to vectorize instructions already vectorized.

Reviewers: sdesmalen, efriedma, spatel, RKSimon, ABataev, apazos, rengolin

Reviewed By: efriedma

Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D76017
2020-03-13 11:23:31 -07:00
..
CMakeLists.txt [VectorCombine] new IR transform pass for partial vector ops 2020-02-09 10:04:41 -05:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LoadStoreVectorizer.cpp [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
LoopVectorizationLegality.cpp [LoopVectorizer] Change types of lists from pointers to references. NFC 2020-03-02 15:04:41 +00:00
LoopVectorizationPlanner.h [LV] Do not try to sink dead instructions. 2020-01-28 08:28:03 -08:00
LoopVectorize.cpp [SVE] Update API ConstantVector::getSplat() to use ElementCount. 2020-03-12 13:22:41 -07:00
SLPVectorizer.cpp [SLPVectorizer][SVE] Bail out early for scalable vector. 2020-03-13 11:23:31 -07:00
VPRecipeBuilder.h [LV] Apply sink-after & interleave-groups as VPlan transformations (NFCI) 2019-11-09 20:52:25 +02:00
VPlan.cpp [VPlan] Use consecutive numbers to print VPValues instead of addresses. 2020-03-05 14:55:15 +00:00
VPlan.h [VPlan] Use consecutive numbers to print VPValues instead of addresses. 2020-03-05 14:55:15 +00:00
VPlanDominatorTree.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
VPlanHCFGBuilder.cpp Hide two unused debugging methods, NFCI. 2019-03-01 17:15:21 +00:00
VPlanHCFGBuilder.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
VPlanLoopInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
VPlanPredicator.cpp Update files that were mistakenly added with the old file header to the 2019-02-11 08:07:38 +00:00
VPlanPredicator.h Update files that were mistakenly added with the old file header to the 2019-02-11 08:07:38 +00:00
VPlanSLP.cpp [VPlanSLP] Don't dereference a cast_or_null<VPInstruction> result. NFCI. 2019-09-16 11:22:44 +00:00
VPlanTransforms.cpp [LoopVectorizer] Change types of lists from pointers to references. NFC 2020-03-02 15:04:41 +00:00
VPlanTransforms.h [LoopVectorizer] Change types of lists from pointers to references. NFC 2020-03-02 15:04:41 +00:00
VPlanValue.h [VPlan] Use consecutive numbers to print VPValues instead of addresses. 2020-03-05 14:55:15 +00:00
VPlanVerifier.cpp Add missing includes needed to prune LLVMContext.h include, NFC 2019-11-14 15:23:15 -08:00
VPlanVerifier.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
VectorCombine.cpp [VectorCombine] fold extract-extract-op with different extraction indexes 2020-03-08 09:57:55 -04:00
Vectorize.cpp [VectorCombine] new IR transform pass for partial vector ops 2020-02-09 10:04:41 -05:00