|
LLVM 24.0.0git
|
This is a simple bottom-up (top-down) vectorizer Region pass. More...
#include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BundleVec.h"
Public Member Functions | |
| BundleVec (StringRef AuxArg) | |
| bool | runOnRegion (Region &Rgn, const Analyses &A) final |
\Returns true if it modifies R. | |
| Public Member Functions inherited from llvm::sandboxir::RegionPass | |
| RegionPass (StringRef Name) | |
Name can't contain any spaces or start with '-'. | |
| Public Member Functions inherited from llvm::sandboxir::Pass | |
| Pass (StringRef Name) | |
Name can't contain any spaces or start with '-'. | |
| virtual | ~Pass ()=default |
| StringRef | getName () const |
| \Returns the name of the pass. | |
| virtual void | print (raw_ostream &OS) const |
| LLVM_ABI virtual LLVM_DUMP_METHOD void | dump () const |
| virtual void | printPipeline (raw_ostream &OS) const |
| Similar to print() but adds a newline. Used for testing. | |
Additional Inherited Members | |
| Protected Attributes inherited from llvm::sandboxir::Pass | |
| const std::string | Name |
| The pass name. | |
This is a simple bottom-up (top-down) vectorizer Region pass.
It expects a "seed slice" as an input in the Region's Aux vector. The "seed slice" is a vector of instructions that can be used as a starting point for vectorization, like stores (loads) to consecutive memory addresses. Starting from the seed instructions, it recursively walks up (down) the use-def (def-use) chains, forming a bundle of instructions per operand (user) position, for as long as these bundles can be vectorized. This pass will generate vector code if it can legally vectorize the code, regardless of whether it is profitable or not. For now profitability is checked at the end of the region pass pipeline by a dedicated pass that accepts or rejects the IR transaction, depending on the cost.
Definition at line 39 of file BundleVec.h.
|
inline |
Definition at line 111 of file BundleVec.h.
References llvm::sandboxir::BottomUp, llvm::sandboxir::RegionPass::RegionPass(), llvm::reportFatalUsageError(), and llvm::sandboxir::TopDown.
\Returns true if it modifies R.
Implements llvm::sandboxir::RegionPass.
Definition at line 591 of file BundleVec.cpp.
References A(), assert(), F, and llvm::sandboxir::Region::getAux().