LLVM: llvm::sandboxir::MemSeedBundle< LoadOrStoreT > Class Template Reference (original) (raw)

Specialization of SeedBundle for memory access instructions. More...

#include "[llvm/Transforms/Vectorize/SandboxVectorizer/SeedCollector.h](SeedCollector%5F8h%5Fsource.html)"

Inheritance diagram for llvm::sandboxir::MemSeedBundle< LoadOrStoreT >:

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 ()=default
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.
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
LLVM_ABI ArrayRef< 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.

Detailed Description

template
class llvm::sandboxir::MemSeedBundle< LoadOrStoreT >

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 136 of file SeedCollector.h.

Constructor & Destructor Documentation

template

MemSeedBundle() [2/2]

template

Member Function Documentation

insert()

template


The documentation for this class was generated from the following file: