CIRCT 23.0.0git
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Enumerations
SparseOpSCC.h File Reference
#include "mlir/IR/Operation.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/PointerEmbeddedInt.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/STLFunctionalExtras.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallVector.h"
#include <type_traits>
Include dependency graph for SparseOpSCC.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  circt::CyclicOpSCC
 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...
 
struct  llvm::PointerLikeTypeTraits< circt::CyclicOpSCC >
 
class  circt::detail::OpSCCIterator< BaseIteratorT >
 
class  circt::SparseOpSCC< Direction, NumInlineElts >
 Iterative Tarjan SCC analysis on a sparse subgraph of MLIR operations. More...
 
struct  circt::SparseOpSCC< Direction, NumInlineElts >::ForwardFrame
 
struct  circt::SparseOpSCC< Direction, NumInlineElts >::BackwardFrame
 

Namespaces

namespace  circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
 
namespace  circt::detail
 
namespace  llvm
 

Typedefs

using circt::OpSCCFilter = std::function< bool(mlir::Operation *, mlir::OpOperand &)>
 Filter predicate passed to the SparseOpSCC constructor.
 
using circt::detail::CyclicOpSCCStorage = llvm::SmallVector< mlir::Operation *, 4 >
 Backing storage for a cyclic SCC (implementation detail).
 
using circt::OpSCC = llvm::PointerUnion< void *, mlir::Operation *, CyclicOpSCC >
 One entry in the SCC output: a null sentinel, a trivial (non-cyclic) operation, or a cyclic group.
 
using circt::detail::OpSccEmbeddedIndex = llvm::PointerEmbeddedInt< unsigned, 31 >
 
using circt::detail::OpOrIndex = llvm::PointerUnion< mlir::Operation *, OpSccEmbeddedIndex >
 

Enumerations

enum class  circt::OpSCCDirection { circt::Forward , circt::Backward }
 Traversal direction for SparseOpSCC. More...