|
CIRCT 23.0.0git
|
#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>

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