|
LLVM 23.0.0git
|
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"
Public Member Functions | |
| SeedCollection (StringRef Pipeline, StringRef AuxArg) | |
| 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 |
Additional Inherited Members | |
| Protected Attributes inherited from llvm::sandboxir::Pass | |
| const std::string | Name |
| The pass name. | |
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.
Definition at line 36 of file SeedCollection.cpp.
References llvm::StringRef::empty(), and llvm::sandboxir::FunctionPass::FunctionPass().
|
inlinefinalvirtual |
Similar to print() but adds a newline. Used for testing.
Reimplemented from llvm::sandboxir::Pass.
Definition at line 37 of file SeedCollection.h.
References llvm::sandboxir::Pass::getName().
|
finalvirtual |
\Returns true if it modifies F.
Implements llvm::sandboxir::FunctionPass.
Definition at line 51 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, runOnFunction(), and StoreSeedsDef.
Referenced by runOnFunction().