CIRCT
20.0.0git
|
#include "circt/Dialect/Debug/DebugOps.h"
#include "circt/Dialect/FIRRTL/AnnotationDetails.h"
#include "circt/Dialect/FIRRTL/CHIRRTLDialect.h"
#include "circt/Dialect/FIRRTL/FIRRTLAnnotations.h"
#include "circt/Dialect/FIRRTL/FIRRTLOps.h"
#include "circt/Dialect/FIRRTL/FIRRTLTypes.h"
#include "circt/Dialect/FIRRTL/FIRRTLUtils.h"
#include "circt/Dialect/FIRRTL/FIRRTLVisitors.h"
#include "circt/Dialect/FIRRTL/Namespace.h"
#include "circt/Dialect/FIRRTL/Passes.h"
#include "circt/Dialect/HW/HWAttributes.h"
#include "circt/Dialect/HW/HWOps.h"
#include "circt/Dialect/HW/InnerSymbolNamespace.h"
#include "circt/Support/Debug.h"
#include "circt/Support/LLVM.h"
#include "mlir/IR/IRMapping.h"
#include "mlir/Pass/Pass.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/SetOperations.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/FormatVariadic.h"
#include "circt/Dialect/FIRRTL/Passes.h.inc"
Go to the source code of this file.
Namespaces | |
circt | |
The InstanceGraph op interface, see InstanceGraphInterface.td for more details. | |
circt::firrtl | |
Macros | |
#define | DEBUG_TYPE "firrtl-inliner" |
#define | GEN_PASS_DEF_INLINER |
Typedefs | |
using | InnerRefToNewNameMap = DenseMap< hw::InnerRefAttr, StringAttr > |
Functions | |
static void | mapResultsToWires (IRMapping &mapper, SmallVectorImpl< Value > &wires, InstanceOp instance) |
This function is used after inlining a module, to handle the conversion between module ports and instance results. More... | |
static void | replaceInnerRefUsers (ArrayRef< Operation * > newOps, const InnerRefToNewNameMap &map, StringAttr istName) |
Process each operation, updating InnerRefAttr's using the specified map and the given name as the containing IST of the mapped-to sym names. More... | |
static hw::InnerSymAttr | uniqueInNamespace (hw::InnerSymAttr old, InnerRefToNewNameMap &map, hw::InnerSymbolNamespace &ns, StringAttr istName) |
Generate and creating map entries for new inner symbol based on old one and an appropriate namespace for creating unique names for each. More... | |
#define DEBUG_TYPE "firrtl-inliner" |
Definition at line 38 of file ModuleInliner.cpp.
#define GEN_PASS_DEF_INLINER |
Definition at line 42 of file ModuleInliner.cpp.
using InnerRefToNewNameMap = DenseMap<hw::InnerRefAttr, StringAttr> |
Definition at line 54 of file ModuleInliner.cpp.
|
static |
This function is used after inlining a module, to handle the conversion between module ports and instance results.
This maps each wire to the result of the instance operation. When future operations are cloned from the current block, they will use the value of the wire instead of the instance results.
Definition at line 407 of file ModuleInliner.cpp.
|
static |
Process each operation, updating InnerRefAttr's using the specified map and the given name as the containing IST of the mapped-to sym names.
Definition at line 418 of file ModuleInliner.cpp.
References assert(), and circt::calyx::direction::get().
|
static |
Generate and creating map entries for new inner symbol based on old one and an appropriate namespace for creating unique names for each.
Definition at line 436 of file ModuleInliner.cpp.
References assert(), and circt::calyx::direction::get().