Commit fd76a12
Extract fusion into GraphPass plugin API
Move ~600 lines of operator fusion code out of subgraph.rs into two new
modules: graph_pass.rs defines a GraphPass trait that receives children
and edges for in-place transformation, and fusion.rs implements it with
the existing detect_groups/fuse_group/GroupScheduler logic.
SubgraphBuilder gains a graph_passes Vec and add_graph_pass() method.
The build() method runs registered passes sequentially before building
the reachability tracker. worker.rs and child.rs register FusionPass
when fuse_chain_length >= 2.
PerOperatorState fields are now pub(crate) so the fusion module can
access them. The forward_to field and tombstone mechanism remain as a
general consequence of graph pass output, not fusion-specific.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 583c570 commit fd76a12
File tree
6 files changed
+745
-619
lines changed- timely/src
- dataflow/scopes
- progress
6 files changed
+745
-619
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
151 | | - | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
152 | 162 | | |
153 | 163 | | |
154 | 164 | | |
| |||
0 commit comments