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: