Expression::optimize_recursive is idempotent - #9625
Conversation
Signed-off-by: Robert Kruszewski <github@robertk.io>
Merging this PR will regress 3 benchmarks
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | WallTime | arrow_checked_add_u32_avx2[16384] |
17.7 µs | 21.3 µs | -16.8% |
| ❌ | WallTime | words_gather_scalar_avx2[65536] |
8.2 µs | 9.4 µs | -12.45% |
| ❌ | Simulation | compress_fsst[(500, 64, 8)] |
475.6 µs | 531.4 µs | -10.5% |
| ⚡ | WallTime | arrow_checked_add_u32_avx512[16384] |
21.2 µs | 17.6 µs | +20.47% |
| ⚡ | WallTime | words_gather_dispatch_avx512[1024] |
9 ns | 8 ns | +12.5% |
| ⚡ | Simulation | compact[(2048, 90)] |
1.5 µs | 1.4 µs | +11.89% |
| ⚡ | WallTime | mul_u32_nonnull_avx512 |
6.3 µs | 5.6 µs | +11.88% |
| ⚡ | Simulation | take_map[(0.1, 1.0)] |
251.2 µs | 227.9 µs | +10.22% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing rk/expridempotent (27d7642) with develop (8d2f1d9)
Footnotes
-
106 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. ↩
-
4 benchmarks were run, but are now archived. If they were deleted in another branch, consider rebasing to remove them from the report. Instead if they were added back, click here to restore them. ↩
Expression::optimize_recursive might need to reoptimise children after root
replacement. Keep looping in optimize_recursive until there are no changes
Signed-off-by: Robert Kruszewski github@robertk.io