Commit fa5fb36
committed
fix: skip direct-dominating live-in opt for loop headers (#270)
Values crossing from outer blocks to inner loop headers were marked as
direct-dominating live-ins, preventing block-arg promotion. This caused
missing inner-rate PHI_STARTs in the dataflow IR, starving inner-loop
operations of valid data each cycle.
Added back-edge check: if the using block has a predecessor it dominates
(i.e. it is a loop header), the value is promoted to a block argument.1 parent f584835 commit fa5fb36
File tree
8 files changed
+1517
-919
lines changed- lib/NeuraDialect/Transforms
- test
- e2e
- bicg
- fft
- gemm
- gemv
- spmv
- neura/fusion
8 files changed
+1517
-919
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
436 | 436 | | |
437 | 437 | | |
438 | 438 | | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
439 | 461 | | |
440 | 462 | | |
441 | 463 | | |
| |||
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
33 | | - | |
34 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
0 commit comments