LLVM 20.0.0git
Public Member Functions | List of all members
llvm::sandboxir::MemSeedBundle< LoadOrStoreT > Class Template Reference

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

#include "llvm/Transforms/Vectorize/SandboxVectorizer/SeedCollector.h"

Inheritance diagram for llvm::sandboxir::MemSeedBundle< LoadOrStoreT >:
Inheritance graph
[legend]

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.
 
SeedBundleoperator= (const SeedBundle &)=delete
 
virtual ~SeedBundle ()
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
Instructionoperator[] (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.
 

Detailed Description

template<typename LoadOrStoreT>
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 135 of file SeedCollector.h.

Constructor & Destructor Documentation

◆ MemSeedBundle() [1/2]

template<typename LoadOrStoreT >
llvm::sandboxir::MemSeedBundle< LoadOrStoreT >::MemSeedBundle ( SmallVector< Instruction * > &&  SV,
ScalarEvolution SE 
)
inlineexplicit

◆ MemSeedBundle() [2/2]

template<typename LoadOrStoreT >
llvm::sandboxir::MemSeedBundle< LoadOrStoreT >::MemSeedBundle ( LoadOrStoreT *  MemI)
inlineexplicit

Definition at line 150 of file SeedCollector.h.

References assert().

Member Function Documentation

◆ insert()

template<typename LoadOrStoreT >
void llvm::sandboxir::MemSeedBundle< LoadOrStoreT >::insert ( sandboxir::Instruction I,
ScalarEvolution SE 
)
inlineoverridevirtual

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