LLVM 20.0.0git
Public Types | Public Member Functions | List of all members
llvm::sandboxir::SeedContainer::iterator Class Reference

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

Public Types

using difference_type = std::ptrdiff_t
 
using value_type = SeedBundle
 
using pointer = value_type *
 
using reference = value_type &
 
using iterator_category = std::input_iterator_tag
 

Public Member Functions

 iterator (BundleMapT &Map, BundleMapT::iterator MapIt, ValT *Vec, int VecIdx)
 Iterates over the Map of SeedBundle Vectors, starting at MapIt, and Vec at VecIdx, skipping vectors that are completely used.
 
value_typeoperator* ()
 
void skipUsed ()
 
iteratoroperator++ ()
 
iterator operator++ (int)
 
bool operator== (const iterator &Other) const
 
bool operator!= (const iterator &Other) const
 

Detailed Description

Definition at line 198 of file SeedCollector.h.

Member Typedef Documentation

◆ difference_type

Definition at line 205 of file SeedCollector.h.

◆ iterator_category

Definition at line 209 of file SeedCollector.h.

◆ pointer

Definition at line 207 of file SeedCollector.h.

◆ reference

Definition at line 208 of file SeedCollector.h.

◆ value_type

Definition at line 206 of file SeedCollector.h.

Constructor & Destructor Documentation

◆ iterator()

llvm::sandboxir::SeedContainer::iterator::iterator ( BundleMapT Map,
BundleMapT::iterator  MapIt,
ValT Vec,
int  VecIdx 
)
inline

Iterates over the Map of SeedBundle Vectors, starting at MapIt, and Vec at VecIdx, skipping vectors that are completely used.

Iteration order over the keys {Pointer, Type, Opcode} follows DenseMap iteration order. For a given key, the vectors of SeedBundles will be returned in insertion order. As in the pseudo code below:

for Key,Value in Bundles for SeedBundleVector in Value for SeedBundle in SeedBundleVector if !SeedBundle.allUsed() ...

Note that the bundles themselves may have additional ordering, created by the subclasses by insertAt. The bundles themselves may also have used instructions.

Definition at line 230 of file SeedCollector.h.

Member Function Documentation

◆ operator!=()

bool llvm::sandboxir::SeedContainer::iterator::operator!= ( const iterator Other) const
inline

Definition at line 266 of file SeedCollector.h.

References llvm::Other.

◆ operator*()

value_type & llvm::sandboxir::SeedContainer::iterator::operator* ( )
inline

Definition at line 232 of file SeedCollector.h.

References assert().

◆ operator++() [1/2]

iterator & llvm::sandboxir::SeedContainer::iterator::operator++ ( )
inline

Definition at line 242 of file SeedCollector.h.

References assert(), llvm::SmallVectorBase< Size_T >::size(), and skipUsed().

◆ operator++() [2/2]

iterator llvm::sandboxir::SeedContainer::iterator::operator++ ( int  )
inline

Definition at line 257 of file SeedCollector.h.

◆ operator==()

bool llvm::sandboxir::SeedContainer::iterator::operator== ( const iterator Other) const
inline

Definition at line 262 of file SeedCollector.h.

References assert(), and llvm::Other.

◆ skipUsed()

void llvm::sandboxir::SeedContainer::iterator::skipUsed ( )
inline

Definition at line 237 of file SeedCollector.h.

References llvm::sandboxir::SeedContainer::size().

Referenced by operator++().


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