CIRCT 24.0.0git
Loading...
Searching...
No Matches
circt::CyclicOpSCC Class Reference

A cyclic SCC: a pointer-sized, directly-iterable reference to a group of mutually-reachable operations (or a single op with a self-loop). More...

#include <SparseOpSCC.h>

Collaboration diagram for circt::CyclicOpSCC:

Public Types

using iterator = detail::CyclicOpSCCStorage::const_iterator

Public Member Functions

 CyclicOpSCC ()
 CyclicOpSCC (const detail::CyclicOpSCCStorage *storage)
iterator begin () const
iterator end () const
size_t size () const
mlir::Operation *const * data () const
mlir::Operation * operator[] (size_t i) const
 operator bool () const
bool operator== (CyclicOpSCC other) const
bool operator!= (CyclicOpSCC other) const
void * getAsVoidPointer () const

Static Public Member Functions

static CyclicOpSCC getFromVoidPointer (void *p)

Static Public Attributes

static constexpr int NumLowBitsAvailable

Private Attributes

const detail::CyclicOpSCCStorage * storage

Detailed Description

A cyclic SCC: a pointer-sized, directly-iterable reference to a group of mutually-reachable operations (or a single op with a self-loop).

Instances are obtained via llvm::cast<CyclicOpSCC> on an OpSCC entry. The referenced storage is owned by the SparseOpSCC that produced the entry.

Definition at line 155 of file SparseOpSCC.h.

Member Typedef Documentation

◆ iterator

using circt::CyclicOpSCC::iterator = detail::CyclicOpSCCStorage::const_iterator

Definition at line 157 of file SparseOpSCC.h.

Constructor & Destructor Documentation

◆ CyclicOpSCC() [1/2]

circt::CyclicOpSCC::CyclicOpSCC ( )
inline

Definition at line 159 of file SparseOpSCC.h.

References storage.

Referenced by getFromVoidPointer(), operator!=(), and operator==().

◆ CyclicOpSCC() [2/2]

circt::CyclicOpSCC::CyclicOpSCC ( const detail::CyclicOpSCCStorage * storage)
inline

Definition at line 160 of file SparseOpSCC.h.

References storage.

Member Function Documentation

◆ begin()

iterator circt::CyclicOpSCC::begin ( ) const
inline

Definition at line 162 of file SparseOpSCC.h.

References storage.

◆ data()

mlir::Operation *const * circt::CyclicOpSCC::data ( ) const
inline

Definition at line 165 of file SparseOpSCC.h.

References storage.

◆ end()

iterator circt::CyclicOpSCC::end ( ) const
inline

Definition at line 163 of file SparseOpSCC.h.

References storage.

◆ getAsVoidPointer()

void * circt::CyclicOpSCC::getAsVoidPointer ( ) const
inline

◆ getFromVoidPointer()

CyclicOpSCC circt::CyclicOpSCC::getFromVoidPointer ( void * p)
inlinestatic

◆ operator bool()

circt::CyclicOpSCC::operator bool ( ) const
inline

Definition at line 168 of file SparseOpSCC.h.

References storage.

◆ operator!=()

bool circt::CyclicOpSCC::operator!= ( CyclicOpSCC other) const
inline

Definition at line 171 of file SparseOpSCC.h.

References CyclicOpSCC(), and storage.

◆ operator==()

bool circt::CyclicOpSCC::operator== ( CyclicOpSCC other) const
inline

Definition at line 170 of file SparseOpSCC.h.

References CyclicOpSCC(), and storage.

◆ operator[]()

mlir::Operation * circt::CyclicOpSCC::operator[] ( size_t i) const
inline

Definition at line 166 of file SparseOpSCC.h.

References storage.

◆ size()

size_t circt::CyclicOpSCC::size ( ) const
inline

Definition at line 164 of file SparseOpSCC.h.

References storage.

Member Data Documentation

◆ NumLowBitsAvailable

int circt::CyclicOpSCC::NumLowBitsAvailable
staticconstexpr
Initial value:
= llvm::PointerLikeTypeTraits<
static constexpr int NumLowBitsAvailable
llvm::SmallVector< mlir::Operation *, 4 > CyclicOpSCCStorage
Backing storage for a cyclic SCC (implementation detail).

Definition at line 180 of file SparseOpSCC.h.

◆ storage

const detail::CyclicOpSCCStorage* circt::CyclicOpSCC::storage
private

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