LLVM 22.0.0git
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 >:
[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.
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<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 136 of file SeedCollector.h.

Constructor & Destructor Documentation

◆ MemSeedBundle() [1/2]

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

Definition at line 138 of file SeedCollector.h.

◆ MemSeedBundle() [2/2]

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

Definition at line 151 of file SeedCollector.h.

Member Function Documentation

◆ insert()

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

Implements llvm::sandboxir::SeedBundle.

Definition at line 157 of file SeedCollector.h.


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