Convert scf to cf
convert_scf_to_cf
¶
IfLowering
¶
Bases: RewritePattern
Lowers scf.if to conditional branching.
Source code in xdsl/transforms/convert_scf_to_cf.py
match_and_rewrite(if_op: IfOp, rewriter: PatternRewriter)
¶
Source code in xdsl/transforms/convert_scf_to_cf.py
ForLowering
¶
Bases: RewritePattern
Lowers scf.for to conditional branching.
Source code in xdsl/transforms/convert_scf_to_cf.py
match_and_rewrite(for_op: ForOp, rewriter: PatternRewriter)
¶
Source code in xdsl/transforms/convert_scf_to_cf.py
SwitchLowering
¶
Bases: RewritePattern
Lowers scf.index_switch to cf.switch.
Source code in xdsl/transforms/convert_scf_to_cf.py
match_and_rewrite(op: IndexSwitchOp, rewriter: PatternRewriter)
¶
Source code in xdsl/transforms/convert_scf_to_cf.py
ConvertScfToCf
dataclass
¶
Bases: ModulePass
Lower scf.for and scf.if to unstructured control flow.
Implementations are direct translations of the mlir versions found at
https://github.com/llvm/llvm-project/blob/main/mlir/lib/Conversion/SCFToControlFlow/SCFToControlFlow.cpp