Commit 2d64cdd
committed
[Z80] Fix flag liveness tracking during frame index elimination
RegScavenger's isRegUsed() can become unreliable during backward
scavenging in PEI::replaceFrameIndicesBackward because LiveUnits
becomes stale after skipTo() repositions the scavenger without
updating liveness for inserted instructions
This caused incorrect code gen where flag clobbering add instructions
were not wrapped with push and pop whjen flags were actually live
Related: llvm#1742511 parent 2f66fcc commit 2d64cdd
1 file changed
Lines changed: 27 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1195 | 1195 | | |
1196 | 1196 | | |
1197 | 1197 | | |
1198 | | - | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
1199 | 1225 | | |
1200 | 1226 | | |
1201 | 1227 | | |
| |||
0 commit comments