Commit 2580ea2
committed
Simplify revFlowThrough
Observations:
* revFlowThrough can be much larger than the other reverse-flow predicates, presumably when there are many different innerReturnAps.
* It is only ever used in conjunction with flowThroughIntoCall, which can therefore be pushed in, and several of its parameters can thereby be dropped in exchange for exposing `arg`.
* `revFlowThroughArg` can then be trivially inlined.
Result: on repository `go-gitea/gitea` with PR #17701 producing a wider selection of access paths than are seen on `main`, `revFlowThrough` drops in size from ~120m tuples to ~4m, and the runtime of the reverse-flow computation for dataflow stage 4 goes from dominating the forward-flow cost to relatively insignificant. Overall runtime falls from 3 minutes to 2 with substantial ram available, and presumably falls much more under GHA-style memory pressure.1 parent 01db675 commit 2580ea2
File tree
1 file changed
+9
-20
lines changed1 file changed
+9
-20
lines changedLines changed: 9 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2285 | 2285 | | |
2286 | 2286 | | |
2287 | 2287 | | |
2288 | | - | |
2289 | | - | |
2290 | | - | |
2291 | | - | |
| 2288 | + | |
2292 | 2289 | | |
2293 | 2290 | | |
2294 | 2291 | | |
| |||
2437 | 2434 | | |
2438 | 2435 | | |
2439 | 2436 | | |
2440 | | - | |
2441 | | - | |
| 2437 | + | |
| 2438 | + | |
2442 | 2439 | | |
2443 | | - | |
2444 | | - | |
| 2440 | + | |
| 2441 | + | |
| 2442 | + | |
| 2443 | + | |
| 2444 | + | |
2445 | 2445 | | |
2446 | 2446 | | |
2447 | 2447 | | |
| |||
2562 | 2562 | | |
2563 | 2563 | | |
2564 | 2564 | | |
2565 | | - | |
2566 | | - | |
2567 | | - | |
2568 | | - | |
2569 | | - | |
2570 | | - | |
2571 | | - | |
2572 | | - | |
2573 | | - | |
2574 | | - | |
2575 | | - | |
2576 | 2565 | | |
2577 | 2566 | | |
2578 | 2567 | | |
2579 | 2568 | | |
2580 | | - | |
| 2569 | + | |
2581 | 2570 | | |
2582 | 2571 | | |
2583 | 2572 | | |
| |||
0 commit comments