CIRCT 20.0.0git
|
#include "circt/Dialect/HW/HWOps.h"
#include "circt/Dialect/HW/HWPasses.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Transforms/DialectConversion.h"
#include "llvm/ADT/TypeSwitch.h"
#include "circt/Dialect/HW/Passes.h.inc"
Go to the source code of this file.
Namespaces | |
namespace | circt |
The InstanceGraph op interface, see InstanceGraphInterface.td for more details. | |
namespace | circt::hw |
Macros | |
#define | GEN_PASS_DEF_FLATTENIO |
Functions | |
static bool | isStructType (Type type) |
static hw::StructType | getStructType (Type type) |
static bool | isLegalModLikeOp (hw::HWModuleLike moduleLikeOp) |
static llvm::SmallVector< Type > | getInnerTypes (hw::StructType t) |
template<typename... TOp> | |
static void | addSignatureConversion (DenseMap< Operation *, IOInfo > &ioMap, ConversionTarget &target, RewritePatternSet &patterns, FlattenIOTypeConverter &typeConverter) |
template<typename T > | |
static bool | hasUnconvertedOps (mlir::ModuleOp module) |
template<typename T > | |
static DenseMap< Operation *, IOTypes > | populateIOMap (mlir::ModuleOp module) |
template<typename ModTy , typename T > | |
static llvm::SmallVector< Attribute > | updateNameAttribute (ModTy op, StringRef attrName, DenseMap< unsigned, hw::StructType > &structMap, T oldNames, char joinChar) |
template<typename ModTy > | |
static void | updateModulePortNames (ModTy op, hw::ModuleType oldModType, char joinChar) |
static llvm::SmallVector< Location > | updateLocAttribute (DenseMap< unsigned, hw::StructType > &structMap, SmallVectorImpl< Location > &oldLocs) |
static void | updateBlockLocations (hw::HWModuleLike op, DenseMap< unsigned, hw::StructType > &structMap) |
The conversion framework seems to throw away block argument locations. | |
static void | setIOInfo (hw::HWModuleLike op, IOInfo &ioInfo) |
template<typename T > | |
static DenseMap< Operation *, IOInfo > | populateIOInfoMap (mlir::ModuleOp module) |
template<typename T > | |
static LogicalResult | flattenOpsOfType (ModuleOp module, bool recursive, StringSet<> &externModules, char joinChar) |
template<typename... TOps> | |
static bool | flattenIO (ModuleOp module, bool recursive, StringSet<> &externModules, char joinChar) |
#define GEN_PASS_DEF_FLATTENIO |
Definition at line 17 of file FlattenIO.cpp.
|
static |
Definition at line 249 of file FlattenIO.cpp.
References compareTypes(), and isLegalModLikeOp().
|
static |
Definition at line 537 of file FlattenIO.cpp.
|
static |
Definition at line 417 of file FlattenIO.cpp.
References updateBlockLocations(), updateLocAttribute(), and updateModulePortNames().
|
static |
Definition at line 39 of file FlattenIO.cpp.
|
static |
Definition at line 29 of file FlattenIO.cpp.
Referenced by setIOInfo(), and updateModulePortNames().
|
static |
Definition at line 299 of file FlattenIO.cpp.
|
static |
Definition at line 34 of file FlattenIO.cpp.
References isStructType().
Referenced by addSignatureConversion().
|
static |
Definition at line 25 of file FlattenIO.cpp.
Referenced by isLegalModLikeOp().
|
static |
Definition at line 406 of file FlattenIO.cpp.
References setIOInfo().
|
static |
Definition at line 305 of file FlattenIO.cpp.
|
static |
Definition at line 392 of file FlattenIO.cpp.
References getStructType().
Referenced by populateIOInfoMap().
|
static |
The conversion framework seems to throw away block argument locations.
We use this function to copy the location from the original argument to the set of flattened arguments.
Definition at line 383 of file FlattenIO.cpp.
Referenced by flattenOpsOfType().
|
static |
Definition at line 360 of file FlattenIO.cpp.
Referenced by flattenOpsOfType().
|
static |
Definition at line 338 of file FlattenIO.cpp.
References getStructType().
Referenced by flattenOpsOfType().
|
static |
Definition at line 314 of file FlattenIO.cpp.