LLVM: llvm::sandboxir::SeedCollection Class Reference (original) (raw)
This pass collects the instructions that can become vectorization "seeds", like stores to consecutive memory addresses. More...
#include "[llvm/Transforms/Vectorize/SandboxVectorizer/Passes/SeedCollection.h](SeedCollection%5F8h%5Fsource.html)"
Inheritance diagram for llvm::sandboxir::SeedCollection:
| Public Member Functions | |
|---|---|
| SeedCollection (StringRef Pipeline) | |
| bool | runOnFunction (Function &F, const Analyses &A) final |
| \Returns true if it modifies F. | |
| void | printPipeline (raw_ostream &OS) const final |
| Similar to print() but adds a newline. Used for testing. | |
| Public Member Functions inherited from llvm::sandboxir::FunctionPass | |
| FunctionPass (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_FOR_TEST virtual LLVM_DUMP_METHOD void | dump () const |
Detailed Description
This pass collects the instructions that can become vectorization "seeds", like stores to consecutive memory addresses.
It then goes over the collected seeds, slicing them into appropriately sized chunks, creating a Region with the seed slice as the Auxiliary vector and runs the region pass pipeline.
Definition at line 24 of file SeedCollection.h.
Constructor & Destructor Documentation
| llvm::sandboxir::SeedCollection::SeedCollection | ( | StringRef | Pipeline | ) |
|---|
Member Function Documentation
◆ printPipeline()
| void llvm::sandboxir::SeedCollection::printPipeline ( raw_ostream & OS) const | inlinefinalvirtual |
|---|
◆ runOnFunction()
\Returns true if it modifies F.
Implements llvm::sandboxir::FunctionPass.
Definition at line 39 of file SeedCollection.cpp.
References A(), llvm::AllowNonPow2, assert(), llvm::sandboxir::Region::clearAux(), llvm::CollectSeeds, DL, F, llvm::sandboxir::VecUtils::getElementType(), llvm::sandboxir::Utils::getExpectedType(), llvm::sandboxir::VecUtils::getFloorPowerOf2(), llvm::sandboxir::Utils::getNumBits(), llvm::sandboxir::SeedCollector::getStoreSeeds(), LoadSeedsDef, llvm::Offset, llvm::OverrideVecRegBits, llvm::TargetTransformInfo::RGK_FixedWidthVector, and StoreSeedsDef.
The documentation for this class was generated from the following files:
- include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/SeedCollection.h
- lib/Transforms/Vectorize/SandboxVectorizer/Passes/SeedCollection.cpp