|
CIRCT 22.0.0git
|
FuncOpPartialLoweringPatterns are patterns which intend to match on FuncOps and then perform their own walking of the IR. More...
#include <CalyxLoweringUtils.h>


Public Member Functions | |
| FuncOpPartialLoweringPattern (MLIRContext *context, LogicalResult &resRef, PatternApplicationState &patternState, DenseMap< mlir::func::FuncOp, calyx::ComponentOp > &map, calyx::CalyxLoweringState &state) | |
| LogicalResult | partiallyLower (mlir::func::FuncOp funcOp, PatternRewriter &rewriter) const override final |
| Entry point to initialize the state of this class and conduct the partial lowering. | |
| calyx::ComponentOp | getComponent () const |
| Returns the component operation associated with the currently executing partial lowering. | |
| template<typename T = ComponentLoweringStateInterface> | |
| T & | getState () const |
| CalyxLoweringState & | loweringState () const |
| Return the calyx lowering state for this pattern. | |
| virtual LogicalResult | partiallyLowerFuncToComp (mlir::func::FuncOp funcOp, PatternRewriter &rewriter) const =0 |
Public Member Functions inherited from circt::calyx::PartialLoweringPattern< mlir::func::FuncOp > | |
| PartialLoweringPattern (MLIRContext *ctx, LogicalResult &resRef, PatternApplicationState &patternState) | |
| LogicalResult | matchAndRewrite (mlir::func::FuncOp op, PatternRewriter &rewriter) const override |
Protected Attributes | |
| DenseMap< mlir::func::FuncOp, calyx::ComponentOp > & | functionMapping |
Private Attributes | |
| ComponentOp | componentOp |
| ComponentLoweringStateInterface * | componentLoweringState = nullptr |
| CalyxLoweringState & | calyxLoweringState |
FuncOpPartialLoweringPatterns are patterns which intend to match on FuncOps and then perform their own walking of the IR.
Definition at line 668 of file CalyxLoweringUtils.h.
| circt::calyx::FuncOpPartialLoweringPattern::FuncOpPartialLoweringPattern | ( | MLIRContext * | context, |
| LogicalResult & | resRef, | ||
| PatternApplicationState & | patternState, | ||
| DenseMap< mlir::func::FuncOp, calyx::ComponentOp > & | map, | ||
| calyx::CalyxLoweringState & | state | ||
| ) |
Definition at line 512 of file CalyxLoweringUtils.cpp.
| calyx::ComponentOp circt::calyx::FuncOpPartialLoweringPattern::getComponent | ( | ) | const |
Returns the component operation associated with the currently executing partial lowering.
Definition at line 535 of file CalyxLoweringUtils.cpp.
References assert(), and componentOp.
Referenced by circt::pipelinetocalyx::BuildOpGroups::assignAddressPorts(), circt::scftocalyx::BuildOpGroups::assignAddressPorts(), circt::scftocalyx::BuildOpGroups::buildFpIntTypeCastOp(), circt::pipelinetocalyx::BuildOpGroups::buildLibraryBinaryPipeOp(), circt::scftocalyx::BuildOpGroups::buildLibraryBinaryPipeOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::createSignalRegister(), circt::pipelinetocalyx::BuildWhileGroups::partiallyLowerFuncToComp(), circt::pipelinetocalyx::BuildPipelineRegs::partiallyLowerFuncToComp(), circt::pipelinetocalyx::BuildControl::partiallyLowerFuncToComp(), circt::scftocalyx::BuildWhileGroups::partiallyLowerFuncToComp(), circt::scftocalyx::BuildForGroups::partiallyLowerFuncToComp(), circt::scftocalyx::BuildIfGroups::partiallyLowerFuncToComp(), circt::scftocalyx::BuildControl::partiallyLowerFuncToComp(), circt::calyx::BuildBasicBlockRegs::partiallyLowerFuncToComp(), circt::calyx::BuildReturnRegs::partiallyLowerFuncToComp(), circt::calyx::BuildCallInstance::partiallyLowerFuncToComp(), and circt::scftocalyx::BuildOpGroups::setupCmpIOp().
|
inline |
Definition at line 690 of file CalyxLoweringUtils.h.
References assert(), and componentLoweringState.
Referenced by circt::calyx::BuildBasicBlockRegs::partiallyLowerFuncToComp(), circt::calyx::BuildReturnRegs::partiallyLowerFuncToComp(), and circt::calyx::BuildCallInstance::partiallyLowerFuncToComp().
| CalyxLoweringState & circt::calyx::FuncOpPartialLoweringPattern::loweringState | ( | ) | const |
Return the calyx lowering state for this pattern.
Definition at line 541 of file CalyxLoweringUtils.cpp.
References calyxLoweringState.
Referenced by circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildPipelineGroups::buildStageGroups(), circt::pipelinetocalyx::BuildOpGroups::createGroupForOp(), circt::scftocalyx::BuildOpGroups::createGroupForOp(), circt::pipelinetocalyx::FuncOpConversion::partiallyLowerFuncToComp(), circt::scftocalyx::FuncOpConversion::partiallyLowerFuncToComp(), circt::scftocalyx::BuildWhileGroups::partiallyLowerFuncToComp(), circt::calyx::BuildBasicBlockRegs::partiallyLowerFuncToComp(), and circt::scftocalyx::BuildControl::scheduleBasicBlock().
|
finaloverridevirtual |
Entry point to initialize the state of this class and conduct the partial lowering.
Implements circt::calyx::PartialLoweringPattern< mlir::func::FuncOp >.
Definition at line 521 of file CalyxLoweringUtils.cpp.
References calyxLoweringState, componentLoweringState, componentOp, functionMapping, circt::calyx::CalyxLoweringState::getState(), and partiallyLowerFuncToComp().
|
pure virtual |
Implemented in circt::calyx::ConvertIndexTypes, circt::calyx::BuildBasicBlockRegs, circt::calyx::BuildReturnRegs, and circt::calyx::BuildCallInstance.
Referenced by partiallyLower().
|
private |
Definition at line 723 of file CalyxLoweringUtils.h.
Referenced by loweringState(), and partiallyLower().
|
mutableprivate |
Definition at line 722 of file CalyxLoweringUtils.h.
Referenced by getState(), and partiallyLower().
|
mutableprivate |
Definition at line 721 of file CalyxLoweringUtils.h.
Referenced by circt::scftocalyx::BuildOpGroups::buildOp(), circt::calyx::BuildCallInstance::getCallComponent(), getComponent(), partiallyLower(), circt::scftocalyx::BuildForGroups::partiallyLowerFuncToComp(), circt::scftocalyx::BuildIfGroups::partiallyLowerFuncToComp(), and circt::calyx::BuildCallInstance::partiallyLowerFuncToComp().
|
protected |