|
CIRCT 24.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/Interfaces/SideEffectInterfaces.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/DenseSet.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) |
| #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 59 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 271 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 258 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 253 of file InferDomains.cpp.
| using PortInsertions = SmallVector<std::pair<unsigned, PortInfo> > |
Definition at line 61 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 65 of file InferDomains.cpp.
|
static |
Returns true if the value is driven by a connect op.
Definition at line 85 of file InferDomains.cpp.
|
static |
True if a value of the given type could be associated with a domain.
Definition at line 94 of file InferDomains.cpp.
Referenced by isHardware().
|
static |
True if the given value could be association with a domain.
Definition at line 99 of file InferDomains.cpp.
References isHardware().
|
static |
Return true if the value is a port on the module.
Definition at line 72 of file InferDomains.cpp.
Referenced by isPort().
|
static |
Return true if the value is a port on the module.
Definition at line 77 of file InferDomains.cpp.
References isPort().
|
static |
Definition at line 551 of file InferDomains.cpp.
References ModuleState::RenderLong::state, and ModuleState::RenderLong::value.
|
static |
Definition at line 536 of file InferDomains.cpp.