CIRCT 24.0.0git
Loading...
Searching...
No Matches
circt::calyx::FuncOpPartialLoweringPattern Class Referenceabstract

FuncOpPartialLoweringPatterns are patterns which intend to match on FuncOps and then perform their own walking of the IR. More...

#include <CalyxLoweringUtils.h>

Inheritance diagram for circt::calyx::FuncOpPartialLoweringPattern:
Collaboration diagram for circt::calyx::FuncOpPartialLoweringPattern:

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

Detailed Description

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.

Constructor & Destructor Documentation

◆ FuncOpPartialLoweringPattern()

circt::calyx::FuncOpPartialLoweringPattern::FuncOpPartialLoweringPattern ( MLIRContext * context,
LogicalResult & resRef,
PatternApplicationState & patternState,
DenseMap< mlir::func::FuncOp, calyx::ComponentOp > & map,
calyx::CalyxLoweringState & state )

Member Function Documentation

◆ getComponent()

calyx::ComponentOp circt::calyx::FuncOpPartialLoweringPattern::getComponent ( ) const

Returns the component operation associated with the currently executing partial lowering.

Definition at line 534 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::pipelinetocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::createSignalRegister(), circt::calyx::BuildBasicBlockRegs::partiallyLowerFuncToComp(), circt::calyx::BuildCallInstance::partiallyLowerFuncToComp(), circt::calyx::BuildReturnRegs::partiallyLowerFuncToComp(), circt::pipelinetocalyx::BuildControl::partiallyLowerFuncToComp(), circt::pipelinetocalyx::BuildPipelineRegs::partiallyLowerFuncToComp(), circt::pipelinetocalyx::BuildWhileGroups::partiallyLowerFuncToComp(), circt::scftocalyx::BuildControl::partiallyLowerFuncToComp(), circt::scftocalyx::BuildForGroups::partiallyLowerFuncToComp(), circt::scftocalyx::BuildIfGroups::partiallyLowerFuncToComp(), circt::scftocalyx::BuildWhileGroups::partiallyLowerFuncToComp(), and circt::scftocalyx::BuildOpGroups::setupCmpIOp().

◆ getState()

template<typename T = ComponentLoweringStateInterface>
T & circt::calyx::FuncOpPartialLoweringPattern::getState ( ) const
inline

Definition at line 690 of file CalyxLoweringUtils.h.

References assert(), and componentLoweringState.

Referenced by circt::pipelinetocalyx::BuildControl::buildCFGControl(), circt::scftocalyx::BuildControl::buildCFGControl(), circt::scftocalyx::BuildOpGroups::buildFpIntTypeCastOp(), circt::pipelinetocalyx::BuildOpGroups::buildLibraryBinaryPipeOp(), circt::scftocalyx::BuildOpGroups::buildLibraryBinaryPipeOp(), circt::pipelinetocalyx::BuildOpGroups::buildLibraryOp(), circt::scftocalyx::BuildOpGroups::buildLibraryOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::scftocalyx::BuildOpGroups::buildOp(), circt::pipelinetocalyx::BuildPipelineGroups::buildStageGroups(), circt::pipelinetocalyx::BuildControl::buildWhileCtrlOp(), circt::scftocalyx::BuildControl::buildWhileCtrlOp(), circt::pipelinetocalyx::BuildPipelineGroups::convertCombToSeqGroup(), circt::pipelinetocalyx::BuildOpGroups::createGroupForOp(), circt::scftocalyx::BuildOpGroups::createGroupForOp(), circt::scftocalyx::BuildOpGroups::createSignalRegister(), circt::calyx::BuildBasicBlockRegs::partiallyLowerFuncToComp(), circt::calyx::BuildCallInstance::partiallyLowerFuncToComp(), circt::calyx::BuildReturnRegs::partiallyLowerFuncToComp(), circt::pipelinetocalyx::BuildPipelineRegs::partiallyLowerFuncToComp(), circt::pipelinetocalyx::BuildWhileGroups::partiallyLowerFuncToComp(), circt::pipelinetocalyx::LateSSAReplacement::partiallyLowerFuncToComp(), circt::scftocalyx::BuildForGroups::partiallyLowerFuncToComp(), circt::scftocalyx::BuildIfGroups::partiallyLowerFuncToComp(), circt::scftocalyx::BuildOpGroups::partiallyLowerFuncToComp(), circt::scftocalyx::BuildWhileGroups::partiallyLowerFuncToComp(), circt::scftocalyx::LateSSAReplacement::partiallyLowerFuncToComp(), circt::pipelinetocalyx::BuildControl::scheduleBasicBlock(), circt::scftocalyx::BuildControl::scheduleBasicBlock(), circt::pipelinetocalyx::BuildControl::schedulePath(), circt::scftocalyx::BuildControl::schedulePath(), and circt::scftocalyx::BuildOpGroups::setupCmpIOp().

◆ loweringState()

◆ partiallyLower()

LogicalResult circt::calyx::FuncOpPartialLoweringPattern::partiallyLower ( mlir::func::FuncOp funcOp,
PatternRewriter & rewriter ) const
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 520 of file CalyxLoweringUtils.cpp.

References calyxLoweringState, componentLoweringState, componentOp, functionMapping, and partiallyLowerFuncToComp().

◆ partiallyLowerFuncToComp()

virtual LogicalResult circt::calyx::FuncOpPartialLoweringPattern::partiallyLowerFuncToComp ( mlir::func::FuncOp funcOp,
PatternRewriter & rewriter ) const
pure virtual

Member Data Documentation

◆ calyxLoweringState

CalyxLoweringState& circt::calyx::FuncOpPartialLoweringPattern::calyxLoweringState
private

◆ componentLoweringState

ComponentLoweringStateInterface* circt::calyx::FuncOpPartialLoweringPattern::componentLoweringState = nullptr
mutableprivate

Definition at line 722 of file CalyxLoweringUtils.h.

Referenced by getState(), and partiallyLower().

◆ componentOp

◆ functionMapping

DenseMap<mlir::func::FuncOp, calyx::ComponentOp>& circt::calyx::FuncOpPartialLoweringPattern::functionMapping
protected

The documentation for this class was generated from the following files: