CIRCT 24.0.0git
Loading...
Searching...
No Matches
ESIOps.cpp File Reference
#include "circt/Dialect/ESI/ESIOps.h"
#include "circt/Dialect/HW/HWOpInterfaces.h"
#include "circt/Dialect/HW/HWTypes.h"
#include "circt/Support/LLVM.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/IR/SymbolTable.h"
#include "circt/Dialect/ESI/ESI.cpp.inc"
#include "circt/Dialect/ESI/ESIInterfaces.cpp.inc"
Include dependency graph for ESIOps.cpp:

Go to the source code of this file.

Namespaces

namespace  circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
namespace  circt::esi

Macros

#define GET_OP_CLASSES

Functions

static ParseResult parseWrapChannelType (OpAsmParser &p, Type &dataType, Type &chanOutputType)
 Wrap ops print only their channel type, from which the data type is derived.
static void printWrapChannelType (OpAsmPrinter &p, Operation *, Type, Type chanOutputType)
static bool parseInferWindowRet (OpAsmParser &p, Type &frame, Type &windowOut)
 Determine the input type ('frame') from the return type ('window').
static void printInferWindowRet (OpAsmPrinter &p, Operation *, Type, Type window)
static FailureOr< ServiceDeclOpInterface > getServiceDecl (Operation *op, SymbolTableCollection &symbolTable, hw::InnerRefAttr servicePort)
 Get the port declaration op for the specified service decl, port name.
static FailureOr< ServicePortInfo > getServicePortInfo (Operation *op, SymbolTableCollection &symbolTable, hw::InnerRefAttr servicePort)
 Get the port info for the specified service decl and port name.
LogicalResult circt::esi::checkInnerTypeMatch (Type expected, Type actual)
LogicalResult circt::esi::checkBundleTypeMatch (Operation *req, ChannelBundleType svcBundleType, ChannelBundleType reqBundleType, bool skipDirectionCheck)
 Check that the channels on two bundles match allowing for AnyType in the 'svc' bundle.
static ParseResult parseUnPackBundleType (OpAsmParser &parser, SmallVectorImpl< Type > &toChannelTypes, SmallVectorImpl< Type > &fromChannelTypes, Type &type)
template<typename T3, typename T4>
static void printUnPackBundleType (OpAsmPrinter &p, Operation *, T3, T4, Type bundleType)
bool parseServiceImplRecordReqDetails (OpAsmParser &parser, Region &reqDetailsRegion)
void printServiceImplRecordReqDetails (OpAsmPrinter &p, ServiceImplRecordOp, Region &reqDetailsRegion)

Macro Definition Documentation

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 791 of file ESIOps.cpp.

Function Documentation

◆ getServiceDecl()

FailureOr< ServiceDeclOpInterface > getServiceDecl ( Operation * op,
SymbolTableCollection & symbolTable,
hw::InnerRefAttr servicePort )
static

Get the port declaration op for the specified service decl, port name.

Definition at line 294 of file ESIOps.cpp.

Referenced by getServicePortInfo().

◆ getServicePortInfo()

FailureOr< ServicePortInfo > getServicePortInfo ( Operation * op,
SymbolTableCollection & symbolTable,
hw::InnerRefAttr servicePort )
static

Get the port info for the specified service decl and port name.

Definition at line 309 of file ESIOps.cpp.

References failure(), and getServiceDecl().

◆ parseInferWindowRet()

bool parseInferWindowRet ( OpAsmParser & p,
Type & frame,
Type & windowOut )
static

Determine the input type ('frame') from the return type ('window').

Definition at line 256 of file ESIOps.cpp.

◆ parseServiceImplRecordReqDetails()

bool parseServiceImplRecordReqDetails ( OpAsmParser & parser,
Region & reqDetailsRegion )

Definition at line 719 of file ESIOps.cpp.

◆ parseUnPackBundleType()

ParseResult parseUnPackBundleType ( OpAsmParser & parser,
SmallVectorImpl< Type > & toChannelTypes,
SmallVectorImpl< Type > & fromChannelTypes,
Type & type )
static

Definition at line 496 of file ESIOps.cpp.

References assert(), failure(), and success().

◆ parseWrapChannelType()

ParseResult parseWrapChannelType ( OpAsmParser & p,
Type & dataType,
Type & chanOutputType )
static

Wrap ops print only their channel type, from which the data type is derived.

Definition at line 116 of file ESIOps.cpp.

References failure(), and success().

◆ printInferWindowRet()

void printInferWindowRet ( OpAsmPrinter & p,
Operation * ,
Type ,
Type window )
static

Definition at line 265 of file ESIOps.cpp.

◆ printServiceImplRecordReqDetails()

void printServiceImplRecordReqDetails ( OpAsmPrinter & p,
ServiceImplRecordOp ,
Region & reqDetailsRegion )

Definition at line 727 of file ESIOps.cpp.

◆ printUnPackBundleType()

template<typename T3, typename T4>
void printUnPackBundleType ( OpAsmPrinter & p,
Operation * ,
T3 ,
T4 ,
Type bundleType )
static

Definition at line 515 of file ESIOps.cpp.

◆ printWrapChannelType()

void printWrapChannelType ( OpAsmPrinter & p,
Operation * ,
Type ,
Type chanOutputType )
static

Definition at line 126 of file ESIOps.cpp.