LLVM 22.0.0git
|
This is a simple bottom-up vectorizer Region pass. More...
#include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h"
Public Member Functions | |
BottomUpVec () | |
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 () |
StringRef | getName () const |
\Returns the name of the pass. | |
virtual void | print (raw_ostream &OS) const |
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 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 to consecutive memory addresses. Starting from the seed instructions, it walks up the def-use chain looking for more instructions that 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 35 of file BottomUpVec.h.
|
inline |
Definition at line 98 of file BottomUpVec.h.
References llvm::sandboxir::RegionPass::RegionPass().
\Returns true if it modifies R
.
Implements llvm::sandboxir::RegionPass.
Definition at line 500 of file BottomUpVec.cpp.
References A(), assert(), F, and llvm::sandboxir::Region::getAux().