LLVM 22.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) | |
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. | |
![]() | |
FunctionPass (StringRef Name) | |
Name can't contain any spaces or start with '-'. | |
virtual bool | runOnFunction (Function &F, const Analyses &A)=0 |
\Returns true if it modifies F . | |
![]() | |
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 | |
![]() | |
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.
llvm::sandboxir::SeedCollection::SeedCollection | ( | StringRef | Pipeline | ) |
Definition at line 35 of file SeedCollection.cpp.
|
inlinefinalvirtual |
Similar to print() but adds a newline. Used for testing.
Reimplemented from llvm::sandboxir::Pass.
Definition at line 32 of file SeedCollection.h.
References llvm::sandboxir::Pass::getName(), and OS.
|
finalvirtual |
\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, llvm::sandboxir::RegionPassManager::runOnRegion(), and StoreSeedsDef.