CIRCT
20.0.0git
|
Inlines Calyx ExecuteRegionOp operations within their parent blocks. More...
Private Member Functions | |
LogicalResult | matchAndRewrite (scf::ExecuteRegionOp execOp, PatternRewriter &rewriter) const override |
Inlines Calyx ExecuteRegionOp operations within their parent blocks.
An execution region op (ERO) is inlined by: i : add a sink basic block for all yield operations inside the ERO to jump to ii : Rewrite scf.yield calls inside the ERO to branch to the sink block iii: inline the ERO region TODO(#1850) evaluate the usefulness of this lowering pattern.
Definition at line 1122 of file SCFToCalyx.cpp.
|
inlineoverrideprivate |
Determine type of "yield" operations inside the ERO.
Create sink basic block and rewrite uses of yield results to sink block arguments.
Rewrite yield calls as branches.
Inline the regionOp.
Finally, erase the unused entry block of the execOp region.
Definition at line 1126 of file SCFToCalyx.cpp.