CIRCT 23.0.0git
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Attributes | List of all members
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:
Collaboration graph
[legend]

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::CyclicOpSCCStoragestorage
 

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.

Referenced by getFromVoidPointer().

◆ CyclicOpSCC() [2/2]

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

Definition at line 160 of file SparseOpSCC.h.

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()

static 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 storage.

◆ operator==()

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

Definition at line 170 of file SparseOpSCC.h.

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

Referenced by esiaccel.types.ArrayType::deserialize(), and esiaccel.types.ArrayType::is_valid().

Member Data Documentation

◆ NumLowBitsAvailable

constexpr 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: