Commit 73e1976
authored
`optLocalHasNonLoopUses` checks if a local might be used after a loop by
making use of its liveness information, but it does not check
`lvTracked` before doing so. This is generally not a problem as there
are other checks that the local is in SSA, and normally SSA implies
lvTracked, but that's not the case for locals put into SSA by CSE.
Since it is possible to have CSE defs in a loop with uses outside the
loop, this check is necessary for correctness. It is expected to regress
a bunch of IV opts cases, but in the future we can get those back by
computing the necessary liveness when we insert into SSA.
1 parent 302e0d4 commit 73e1976
1 file changed
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1284 | 1284 | | |
1285 | 1285 | | |
1286 | 1286 | | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
1287 | 1292 | | |
1288 | 1293 | | |
1289 | 1294 | | |
| |||
0 commit comments