Skip to content

Iterative Execution 4b#6756

Draft
gatesn wants to merge 2 commits intongates/execution-3from
ngates/execution-4b
Draft

Iterative Execution 4b#6756
gatesn wants to merge 2 commits intongates/execution-3from
ngates/execution-4b

Conversation

@gatesn
Copy link
Contributor

@gatesn gatesn commented Mar 2, 2026

Summary

Closes: #000

Testing

@gatesn gatesn mentioned this pull request Mar 2, 2026
Copy link
Contributor Author

gatesn commented Mar 2, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

This was referenced Mar 2, 2026
@gatesn gatesn changed the title feat: migrate single-child wrappers to iterative execute (phase 4b) Iterative Execution 4b Mar 2, 2026
@gatesn gatesn changed the base branch from ngates/execution-3 to graphite-base/6756 March 2, 2026 19:04
@gatesn gatesn force-pushed the ngates/execution-4b branch from 3a151c6 to 9a0bc66 Compare March 2, 2026 19:05
@gatesn gatesn changed the base branch from graphite-base/6756 to ngates/execution-3 March 2, 2026 19:05
@gatesn gatesn added the changelog/feature A new feature label Mar 2, 2026
@codspeed-hq
Copy link

codspeed-hq bot commented Mar 2, 2026

Merging this PR will degrade performance by 10.2%

❌ 1 regressed benchmark
✅ 169 untouched benchmarks
⏩ 2250 skipped benchmarks1

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation map_each[BufferMut<i32>, 128] 770.6 ns 858.1 ns -10.2%

Comparing ngates/execution-4b (b722156) with ngates/execution-3 (6c8dcdc)

Open in CodSpeed

Footnotes

  1. 2250 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@gatesn gatesn changed the base branch from ngates/execution-3 to graphite-base/6756 March 2, 2026 19:19
@gatesn gatesn force-pushed the ngates/execution-4b branch from 9a0bc66 to a6c6fa2 Compare March 2, 2026 19:19
@gatesn gatesn changed the base branch from graphite-base/6756 to ngates/execution-3 March 2, 2026 19:19
@gatesn gatesn force-pushed the ngates/execution-4b branch from a6c6fa2 to 4f7e5dd Compare March 2, 2026 20:07
@gatesn gatesn force-pushed the ngates/execution-3 branch from 5cd1e99 to 6c8dcdc Compare March 2, 2026 20:13
@gatesn gatesn force-pushed the ngates/execution-4b branch from 4f7e5dd to b722156 Compare March 2, 2026 20:13
gatesn and others added 2 commits March 2, 2026 15:43
Replace recursive child.execute() calls with ExecutionStep returns in
Slice, Filter, Masked, FoR, and ZigZag vtables. Each now checks if its
child is already in the needed form (canonical/primitive/constant) and
returns Done directly, or returns ExecuteChild(0)/ColumnarizeChild(0)
to let the scheduler handle child execution iteratively.

Also handles ConstantArray children explicitly to prevent infinite loops
in the scheduler (since constants are already columnar and won't be
re-executed). FoR decompress is split into try_fused_decompress and
apply_reference for reuse without recursive execution.

Signed-off-by: Nicholas Gates <nick@nickgates.com>

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gatesn gatesn force-pushed the ngates/execution-3 branch from 6c8dcdc to b5b1652 Compare March 2, 2026 20:43
@gatesn gatesn force-pushed the ngates/execution-4b branch from b722156 to 0e1eae9 Compare March 2, 2026 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant