Control flow hoist
control_flow_hoist
AffineIfHoistPattern
Bases: RewritePattern
Hoist everything out of a pure affine.if.
Source code in xdsl/transforms/control_flow_hoist.py
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | |
match_and_rewrite(op: affine.IfOp, rewriter: PatternRewriter)
Source code in xdsl/transforms/control_flow_hoist.py
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | |
SCFIfHoistPattern
Bases: RewritePattern
Hoist everything out of a pure scf.if
Source code in xdsl/transforms/control_flow_hoist.py
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | |
match_and_rewrite(op: scf.IfOp, rewriter: PatternRewriter)
Source code in xdsl/transforms/control_flow_hoist.py
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | |
ControlFlowHoistPass
dataclass
Bases: ModulePass
Hoist all hoistable ops from control flow ops.
Source code in xdsl/transforms/control_flow_hoist.py
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | |
name = 'control-flow-hoist'
class-attribute
instance-attribute
apply(ctx: Context, op: ModuleOp) -> None
Source code in xdsl/transforms/control_flow_hoist.py
97 98 99 100 101 102 103 104 105 106 | |
hoist_all(rewriter: PatternRewriter, ops: Iterable[Operation], at: InsertPoint, value_mapper: dict[SSAValue, SSAValue] | None = None)
Source code in xdsl/transforms/control_flow_hoist.py
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | |