CIRCT
20.0.0git
|
In BuildWhileGroups, a register is created for each iteration argumenet of the while op. More...
Private Member Functions | |
LogicalResult | partiallyLowerFuncToComp (FuncOp funcOp, PatternRewriter &rewriter) const override |
Additional Inherited Members | |
Public Member Functions inherited from circt::calyx::FuncOpPartialLoweringPattern | |
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. More... | |
calyx::ComponentOp | getComponent () const |
Returns the component operation associated with the currently executing partial lowering. More... | |
template<typename T = ComponentLoweringStateInterface> | |
T & | getState () const |
CalyxLoweringState & | loweringState () const |
Return the calyx lowering state for this pattern. More... | |
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 inherited from circt::calyx::FuncOpPartialLoweringPattern | |
DenseMap< mlir::func::FuncOp, calyx::ComponentOp > & | functionMapping |
In BuildWhileGroups, a register is created for each iteration argumenet of the while op.
These registers are then written to on the while op terminating yield operation alongside before executing the whileOp in the schedule, to set the initial values of the argument registers.
Definition at line 865 of file LoopScheduleToCalyx.cpp.
|
inlineoverrideprivate |
Create iteration argument registers. The iteration argument registers will be referenced:
Also replace uses in the "before" region of the while loop
Create iter args initial value assignment group(s), one per register.
Add the while op to the list of scheduleable things in the current block.
Definition at line 869 of file LoopScheduleToCalyx.cpp.
References circt::calyx::createRegister(), circt::pipelinetocalyx::PipelineWhileOp::getBodyArgs(), circt::pipelinetocalyx::PipelineWhileOp::getConditionBlock(), circt::calyx::WhileOpInterface< T >::getOperation(), and seq::reg().