Function pass that vectorizes straight-line code via bottom-up SLP.
Declared in <llvm/Transforms/Vectorize/SLPVectorizer.h>
struct SLPVectorizerPass
: OptionalPassInfoMixin<SLPVectorizerPass>
Detects consecutive stores that can form vector stores, builds a vectorizable tree from use-def chains, and vectorizes profitable trees.
| Name | Description |
|---|---|
OptionalPassInfoMixin<SLPVectorizerPass> | A CRTP mix-in for passes that can be skipped. |
| Name | Description |
|---|---|
GEPList | List of getelementptr instructions that share a common base pointer. |
GEPListMap | Map from base pointer to the getelementptrs that use it. |
InstSetVector | Ordered set of instructions used as vectorization seeds or candidates. |
StoreList | List of store instructions that share a common base pointer. |
StoreListMap | Map from base pointer to the stores that use it. |
| Name | Description |
|---|---|
run | Run bottom-up SLP vectorization over the function. |
runImpl | Run bottom-up SLP vectorization using explicitly supplied analyses. |
| Name | Description |
|---|---|
isRequired | Return false; optional passes may be skipped. |
| Name | Description |
|---|---|
AA | Alias analysis results used for memory dependence checks. |
AC | Assumption cache used for value-range and known-bits queries. |
DB | Demanded-bits analysis used to refine vectorization profitability. |
DL | Data layout of the module being vectorized. |
DT | Dominator tree used for dominance queries during vectorization. |
LI | Loop information used to reason about loop-carried contexts. |
SE | Scalar evolution analysis used while building SLP trees. |
TLI | Target library info used when recognizing library calls. |
TTI | Target transform info used for cost modeling. |