
This patch adds initial type inferrence for VPValues. It infers the scalar type of a VPValue, by bottom-up traversing through defining recipes until root nodes with known types are reached (e.g. live-ins or load recipes). The types are then propagated top down through operations. This is intended as building block for a VPlan-based cost model, which will need access to type information for VPValues/recipes. Initial testing is done by asserting the inferred type matches the type of the result value generated for a widen and replicate recipes.
29 lines
524 B
CMake
29 lines
524 B
CMake
add_llvm_component_library(LLVMVectorize
|
|
LoadStoreVectorizer.cpp
|
|
LoopVectorizationLegality.cpp
|
|
LoopVectorize.cpp
|
|
SLPVectorizer.cpp
|
|
Vectorize.cpp
|
|
VectorCombine.cpp
|
|
VPlan.cpp
|
|
VPlanAnalysis.cpp
|
|
VPlanHCFGBuilder.cpp
|
|
VPlanRecipes.cpp
|
|
VPlanSLP.cpp
|
|
VPlanTransforms.cpp
|
|
VPlanVerifier.cpp
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/Transforms
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/Transforms/Vectorize
|
|
|
|
DEPENDS
|
|
intrinsics_gen
|
|
|
|
LINK_COMPONENTS
|
|
Analysis
|
|
Core
|
|
Support
|
|
TransformUtils
|
|
)
|