CIRCT
19.0.0git
|
#include "PassDetails.h"
#include "circt/Dialect/HW/HWOps.h"
#include "circt/Dialect/HW/HWPasses.h"
#include "mlir/Transforms/DialectConversion.h"
#include "llvm/ADT/TypeSwitch.h"
Go to the source code of this file.
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. More... | |
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) |
|
static |
Definition at line 192 of file FlattenIO.cpp.
References compareTypes(), isLegalModLikeOp(), and circt::hw::populateHWModuleLikeTypeConversionPattern().
|
static |
Definition at line 477 of file FlattenIO.cpp.
|
static |
Definition at line 360 of file FlattenIO.cpp.
References circt::calyx::direction::get(), setIOInfo(), updateBlockLocations(), updateLocAttribute(), updateModulePortNames(), and updateNameAttribute().
|
static |
Definition at line 32 of file FlattenIO.cpp.
References circt::hw::getCanonicalType(), and circt::esi::innerType().
|
static |
Definition at line 22 of file FlattenIO.cpp.
References circt::hw::getCanonicalType().
Referenced by setIOInfo(), and updateModulePortNames().
|
static |
Definition at line 242 of file FlattenIO.cpp.
|
static |
Definition at line 27 of file FlattenIO.cpp.
References isStructType().
Referenced by addSignatureConversion().
|
static |
Definition at line 18 of file FlattenIO.cpp.
References circt::hw::getCanonicalType().
Referenced by isLegalModLikeOp().
|
static |
Definition at line 349 of file FlattenIO.cpp.
References setIOInfo().
|
static |
Definition at line 248 of file FlattenIO.cpp.
|
static |
Definition at line 335 of file FlattenIO.cpp.
References getStructType().
Referenced by flattenOpsOfType(), and 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 326 of file FlattenIO.cpp.
Referenced by flattenOpsOfType().
|
static |
Definition at line 303 of file FlattenIO.cpp.
Referenced by flattenOpsOfType().
|
static |
Definition at line 281 of file FlattenIO.cpp.
References circt::calyx::direction::get(), and getStructType().
Referenced by flattenOpsOfType().
|
static |
Definition at line 257 of file FlattenIO.cpp.
References circt::calyx::direction::get().
Referenced by flattenOpsOfType().