LLVM 20.0.0git
|
Specialization of SeedBundle for memory access instructions. More...
#include "llvm/Transforms/Vectorize/SandboxVectorizer/SeedCollector.h"
Public Member Functions | |
MemSeedBundle (SmallVector< Instruction * > &&SV, ScalarEvolution &SE) | |
MemSeedBundle (LoadOrStoreT *MemI) | |
void | insert (sandboxir::Instruction *I, ScalarEvolution &SE) override |
Public Member Functions inherited from llvm::sandboxir::SeedBundle | |
SeedBundle (Instruction *I) | |
Initialize a bundle with I . | |
SeedBundle (SmallVector< Instruction * > &&L) | |
SeedBundle (const SeedBundle &)=delete | |
No need to allow copies. | |
SeedBundle & | operator= (const SeedBundle &)=delete |
virtual | ~SeedBundle () |
iterator | begin () |
iterator | end () |
const_iterator | begin () const |
const_iterator | end () const |
Instruction * | operator[] (unsigned Idx) const |
void | insertAt (iterator Pos, Instruction *I) |
Insert I into position P . | |
virtual void | insert (Instruction *I, ScalarEvolution &SE)=0 |
unsigned | getFirstUnusedElementIdx () const |
void | setUsed (Instruction *I) |
Marks instruction I "used" within the bundle. | |
void | setUsed (unsigned ElementIdx, unsigned Sz=1, bool VerifyUnused=true) |
bool | isUsed (unsigned Element) const |
\Returns whether or not Element has been used. | |
bool | allUsed () const |
unsigned | getNumUnusedBits () const |
MutableArrayRef< Instruction * > | getSlice (unsigned StartIdx, unsigned MaxVecRegBits, bool ForcePowOf2) |
\Returns a slice of seed elements, starting at the element StartIdx , with a total size <= MaxVecRegBits , or an empty slice if the requirements cannot be met . | |
std::size_t | size () const |
\Returns the number of seed elements in the bundle. | |
void | dump (raw_ostream &OS) const |
LLVM_DUMP_METHOD void | dump () const |
Additional Inherited Members | |
Public Types inherited from llvm::sandboxir::SeedBundle | |
using | iterator = SmallVector< Instruction * >::iterator |
using | const_iterator = SmallVector< Instruction * >::const_iterator |
Protected Attributes inherited from llvm::sandboxir::SeedBundle | |
SmallVector< Instruction * > | Seeds |
BitVector | UsedLanes |
The lanes that we have already vectorized. | |
unsigned | UsedLaneCount = 0 |
Tracks used lanes for constant-time accessor. | |
unsigned | NumUnusedBits = 0 |
Tracks the remaining bits available to vectorize. | |
Specialization of SeedBundle for memory access instructions.
Keeps seeds sorted in ascending memory order, which is convenient for slicing these bundles into vectorizable groups.
Definition at line 135 of file SeedCollector.h.
|
inlineexplicit |
Definition at line 137 of file SeedCollector.h.
References llvm::all_of(), assert(), llvm::sandboxir::Utils::atLowerAddress(), and llvm::sandboxir::SeedBundle::Seeds.
|
inlineexplicit |
Definition at line 150 of file SeedCollector.h.
References assert().
|
inlineoverridevirtual |
Implements llvm::sandboxir::SeedBundle.
Definition at line 156 of file SeedCollector.h.
References assert(), llvm::sandboxir::Utils::atLowerAddress(), llvm::sandboxir::SeedBundle::begin(), llvm::sandboxir::SeedBundle::end(), I, and llvm::sandboxir::SeedBundle::insertAt().