|
CIRCT 23.0.0git
|
#include "circt/Dialect/FIRRTL/FIRRTLInstanceGraph.h"#include "circt/Dialect/FIRRTL/FIRRTLOps.h"#include "circt/Dialect/FIRRTL/FIRRTLUtils.h"#include "circt/Dialect/FIRRTL/Passes.h"#include "circt/Support/Debug.h"#include "circt/Support/Namespace.h"#include "mlir/IR/AsmState.h"#include "mlir/IR/Iterators.h"#include "mlir/IR/Threading.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/TinyPtrVector.h"#include "circt/Dialect/FIRRTL/Passes.h.inc"
Go to the source code of this file.
Classes | |
| struct | ModuleState::Render< T > |
| struct | ModuleState::RenderLong |
Namespaces | |
| namespace | circt |
| The InstanceGraph op interface, see InstanceGraphInterface.td for more details. | |
| namespace | circt::firrtl |
Macros | |
| #define | DEBUG_TYPE "firrtl-infer-domains" |
| #define | GEN_PASS_DEF_INFERDOMAINS |
Typedefs | |
| using | DomainValue = mlir::TypedValue< DomainType > |
| using | PortInsertions = SmallVector< std::pair< unsigned, PortInfo > > |
| using | PendingSolutions = DenseMap< VariableTerm *, unsigned > |
| A map from unsolved variables to a port index, where that port has not yet been created. | |
| using | PendingExports = llvm::MapVector< DomainValue, unsigned > |
| A map from local domains to an aliasing port index, where that port has not yet been created. | |
| using | ExportTable = DenseMap< DomainValue, TinyPtrVector< DomainValue > > |
| A map from domain IR values defined internal to the moduleOp, to ports that alias that domain. | |
Functions | |
| static auto | getPortDomainAssociation (ArrayAttr info, size_t i) |
| From a domain info attribute, get the row of associated domains for a hardware value at index i. | |
| static bool | isPort (BlockArgument arg) |
| Return true if the value is a port on the module. | |
| static bool | isPort (Value value) |
| Return true if the value is a port on the module. | |
| static bool | isDriven (DomainValue port) |
| Returns true if the value is driven by a connect op. | |
| static bool | isHardware (Type type) |
| True if a value of the given type could be associated with a domain. | |
| static bool | isHardware (Value value) |
| True if the given value could be association with a domain. | |
| template<typename T > | |
| static llvm::raw_ostream & | operator<< (llvm::raw_ostream &out, ModuleState::Render< T > r) |
| static Diagnostic & | operator<< (Diagnostic &diag, ModuleState::RenderLong r) |
| static LogicalResult | stripModule (FModuleLike op) |
| static LogicalResult | stripCircuit (MLIRContext *context, CircuitOp circuit) |
| #define DEBUG_TYPE "firrtl-infer-domains" |
Definition at line 34 of file InferDomains.cpp.
| #define GEN_PASS_DEF_INFERDOMAINS |
Definition at line 38 of file InferDomains.cpp.
| using DomainValue = mlir::TypedValue<DomainType> |
Definition at line 61 of file InferDomains.cpp.
| using ExportTable = DenseMap<DomainValue, TinyPtrVector<DomainValue> > |
A map from domain IR values defined internal to the moduleOp, to ports that alias that domain.
These ports make the domain useable as associations of ports, and we say these are exporting ports.
Definition at line 282 of file InferDomains.cpp.
| using PendingExports = llvm::MapVector<DomainValue, unsigned> |
A map from local domains to an aliasing port index, where that port has not yet been created.
Eventually we will be exporting the domain value at the port index.
Definition at line 269 of file InferDomains.cpp.
| using PendingSolutions = DenseMap<VariableTerm *, unsigned> |
A map from unsolved variables to a port index, where that port has not yet been created.
Eventually we will have an input domain at the port index, which will be the solution to the recorded variable.
Definition at line 264 of file InferDomains.cpp.
| using PortInsertions = SmallVector<std::pair<unsigned, PortInfo> > |
Definition at line 63 of file InferDomains.cpp.
|
static |
From a domain info attribute, get the row of associated domains for a hardware value at index i.
Definition at line 67 of file InferDomains.cpp.
|
static |
Returns true if the value is driven by a connect op.
Definition at line 87 of file InferDomains.cpp.
|
static |
True if a value of the given type could be associated with a domain.
Definition at line 96 of file InferDomains.cpp.
Referenced by isHardware().
|
static |
True if the given value could be association with a domain.
Definition at line 101 of file InferDomains.cpp.
References isHardware().
|
static |
Return true if the value is a port on the module.
Definition at line 74 of file InferDomains.cpp.
Referenced by isPort().
|
static |
Return true if the value is a port on the module.
Definition at line 79 of file InferDomains.cpp.
References isPort().
|
static |
Definition at line 552 of file InferDomains.cpp.
References ModuleState::RenderLong::state, and ModuleState::RenderLong::value.
|
static |
Definition at line 537 of file InferDomains.cpp.
|
static |
Definition at line 1985 of file InferDomains.cpp.
References context, and stripModule().
|
static |
Definition at line 1916 of file InferDomains.cpp.
Referenced by stripCircuit().