|
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 > |
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 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 60 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 279 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 266 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 261 of file InferDomains.cpp.
| using PortInsertions = SmallVector<std::pair<unsigned, PortInfo> > |
Definition at line 62 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 66 of file InferDomains.cpp.
|
static |
Returns true if the value is driven by a connect op.
Definition at line 86 of file InferDomains.cpp.
|
static |
True if a value of the given type could be associated with a domain.
Definition at line 95 of file InferDomains.cpp.
Referenced by isHardware().
|
static |
True if the given value could be association with a domain.
Definition at line 100 of file InferDomains.cpp.
References isHardware().
|
static |
Return true if the value is a port on the module.
Definition at line 73 of file InferDomains.cpp.
Referenced by isPort().
|
static |
Return true if the value is a port on the module.
Definition at line 78 of file InferDomains.cpp.
References isPort().
|
static |
Definition at line 504 of file InferDomains.cpp.
|
static |
Definition at line 1769 of file InferDomains.cpp.
References context, and stripModule().
|
static |
Definition at line 1700 of file InferDomains.cpp.
Referenced by stripCircuit().