CIRCT  19.0.0git
Macros | Functions
LowerSignatures.cpp File Reference
#include "PassDetails.h"
#include "circt/Dialect/FIRRTL/AnnotationDetails.h"
#include "circt/Dialect/FIRRTL/FIRRTLAttributes.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/NLATable.h"
#include "circt/Dialect/FIRRTL/Namespace.h"
#include "circt/Dialect/FIRRTL/Passes.h"
#include "circt/Dialect/HW/HWAttributes.h"
#include "circt/Dialect/HW/HWOpInterfaces.h"
#include "circt/Dialect/SV/SVOps.h"
#include "circt/Support/Debug.h"
#include "mlir/IR/ImplicitLocOpBuilder.h"
#include "mlir/IR/Threading.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Parallel.h"
Include dependency graph for LowerSignatures.cpp:

Go to the source code of this file.


#define DEBUG_TYPE   "firrtl-lower-signatures"


static hw::InnerSymAttr symbolsForFieldIDRange (MLIRContext *ctx, const FieldIDSearch< hw::InnerSymAttr > &syms, uint64_t low, uint64_t high)
static AnnotationSet annosForFieldIDRange (MLIRContext *ctx, const FieldIDSearch< AnnotationSet > &annos, uint64_t low, uint64_t high)
static LogicalResult computeLoweringImpl (FModuleLike mod, PortConversion &newPorts, Convention conv, size_t portID, const PortInfo &port, bool isFlip, Twine name, FIRRTLType type, uint64_t fieldID, const FieldIDSearch< hw::InnerSymAttr > &syms, const FieldIDSearch< AnnotationSet > &annos)
static LogicalResult computeLowering (FModuleLike mod, Convention conv, PortConversion &newPorts)
static LogicalResult lowerModuleSignature (FModuleLike module, Convention conv, AttrCache &cache, PortConversion &newPorts)
static void lowerModuleBody (FModuleOp mod, const DenseMap< StringAttr, PortConversion > &ports)

Macro Definition Documentation


#define DEBUG_TYPE   "firrtl-lower-signatures"

Definition at line 37 of file LowerSignatures.cpp.

Function Documentation

◆ annosForFieldIDRange()

static AnnotationSet annosForFieldIDRange ( MLIRContext *  ctx,
const FieldIDSearch< AnnotationSet > &  annos,
uint64_t  low,
uint64_t  high 

Definition at line 131 of file LowerSignatures.cpp.

References circt::firrtl::AnnotationSet::addAnnotations().

Referenced by computeLoweringImpl().

◆ computeLowering()

static LogicalResult computeLowering ( FModuleLike  mod,
Convention  conv,
PortConversion newPorts 

Definition at line 251 of file LowerSignatures.cpp.

References computeLoweringImpl(), and circt::firrtl::Out.

Referenced by lowerModuleSignature().

◆ computeLoweringImpl()

static LogicalResult computeLoweringImpl ( FModuleLike  mod,
PortConversion newPorts,
Convention  conv,
size_t  portID,
const PortInfo port,
bool  isFlip,
Twine  name,
FIRRTLType  type,
uint64_t  fieldID,
const FieldIDSearch< hw::InnerSymAttr > &  syms,
const FieldIDSearch< AnnotationSet > &  annos 

◆ lowerModuleBody()

static void lowerModuleBody ( FModuleOp  mod,
const DenseMap< StringAttr, PortConversion > &  ports 

◆ lowerModuleSignature()

static LogicalResult lowerModuleSignature ( FModuleLike  module,
Convention  conv,
AttrCache &  cache,
PortConversion newPorts 

◆ symbolsForFieldIDRange()

static hw::InnerSymAttr symbolsForFieldIDRange ( MLIRContext *  ctx,
const FieldIDSearch< hw::InnerSymAttr > &  syms,
uint64_t  low,
uint64_t  high 

Definition at line 117 of file LowerSignatures.cpp.

References circt::calyx::direction::get().

Referenced by computeLoweringImpl().