LLVM: llvm::sandboxir::SeedBundle Class Reference (original) (raw)

A set of candidate Instructions for vectorizing together. More...

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

Public Member Functions
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.
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
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
Protected Attributes
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.

A set of candidate Instructions for vectorizing together.

Definition at line 28 of file SeedCollector.h.

const_iterator

iterator

llvm::sandboxir::SeedBundle::SeedBundle ( Instruction * I) inlineexplicit

SeedBundle() [2/3]

SeedBundle() [3/3]

~SeedBundle()

virtual llvm::sandboxir::SeedBundle::~SeedBundle ( ) virtualdefault

allUsed()

bool llvm::sandboxir::SeedBundle::allUsed ( ) const inline

begin() [1/2]

iterator llvm::sandboxir::SeedBundle::begin ( ) inline

begin() [2/2]

const_iterator llvm::sandboxir::SeedBundle::begin ( ) const inline

dump() [1/2]

dump() [2/2]

void llvm::sandboxir::SeedBundle::dump ( raw_ostream & OS) const inline

end() [1/2]

iterator llvm::sandboxir::SeedBundle::end ( ) inline

end() [2/2]

const_iterator llvm::sandboxir::SeedBundle::end ( ) const inline

getFirstUnusedElementIdx()

unsigned llvm::sandboxir::SeedBundle::getFirstUnusedElementIdx ( ) const inline

getNumUnusedBits()

unsigned llvm::sandboxir::SeedBundle::getNumUnusedBits ( ) const inline

getSlice()

\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 .

If ForcePowOf2 is true, then the returned slice will have a total number of bits that is a power of 2.

Definition at line 30 of file SeedCollector.cpp.

References llvm::ArrayRef(), assert(), llvm::drop_begin(), llvm::sandboxir::Utils::getNumBits(), llvm::isPowerOf2_32(), isUsed(), and Seeds.

insert()

insertAt()

void llvm::sandboxir::SeedBundle::insertAt ( iterator Pos, Instruction * I ) inline

isUsed()

bool llvm::sandboxir::SeedBundle::isUsed ( unsigned Element) const inline

operator=()

operator[]()

setUsed() [1/2]

void llvm::sandboxir::SeedBundle::setUsed ( Instruction * I) inline

setUsed() [2/2]

void llvm::sandboxir::SeedBundle::setUsed ( unsigned ElementIdx, unsigned Sz = 1, bool VerifyUnused = true ) inline

size()

std::size_t llvm::sandboxir::SeedBundle::size ( ) const inline

\Returns the number of seed elements in the bundle.

Definition at line 103 of file SeedCollector.h.

References Seeds.

NumUnusedBits

unsigned llvm::sandboxir::SeedBundle::NumUnusedBits = 0 protected

Seeds

Definition at line 106 of file SeedCollector.h.

Referenced by allUsed(), begin(), begin(), end(), end(), getFirstUnusedElementIdx(), getSlice(), insertAt(), llvm::sandboxir::MemSeedBundle< sandboxir::StoreInst >::MemSeedBundle(), operator, SeedBundle(), setUsed(), and size().

UsedLaneCount

unsigned llvm::sandboxir::SeedBundle::UsedLaneCount = 0 protected

UsedLanes

BitVector llvm::sandboxir::SeedBundle::UsedLanes protected

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