Commit 547dc22
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 b60c860 commit 547dc22
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 | |
|---|---|---|---|
| |||
2261 | 2261 | | |
2262 | 2262 | | |
2263 | 2263 | | |
2264 | | - | |
2265 | | - | |
2266 | | - | |
2267 | | - | |
| 2264 | + | |
2268 | 2265 | | |
2269 | 2266 | | |
2270 | 2267 | | |
| |||
2413 | 2410 | | |
2414 | 2411 | | |
2415 | 2412 | | |
2416 | | - | |
2417 | | - | |
| 2413 | + | |
| 2414 | + | |
2418 | 2415 | | |
2419 | | - | |
2420 | | - | |
| 2416 | + | |
| 2417 | + | |
| 2418 | + | |
| 2419 | + | |
| 2420 | + | |
2421 | 2421 | | |
2422 | 2422 | | |
2423 | 2423 | | |
| |||
2543 | 2543 | | |
2544 | 2544 | | |
2545 | 2545 | | |
2546 | | - | |
2547 | | - | |
2548 | | - | |
2549 | | - | |
2550 | | - | |
2551 | | - | |
2552 | | - | |
2553 | | - | |
2554 | | - | |
2555 | | - | |
2556 | | - | |
2557 | 2546 | | |
2558 | 2547 | | |
2559 | 2548 | | |
2560 | 2549 | | |
2561 | | - | |
| 2550 | + | |
2562 | 2551 | | |
2563 | 2552 | | |
2564 | 2553 | | |
| |||
0 commit comments