Commit 595ae8e
committed
[RISCV] Add a InstRW to COPY in RISCVSchedSpacemitX60.td.
This prevents the scheduler from thinking copy instructions are
free. In #167008, we saw cases where the scheduler moved ABI copies
past other instructions creating high register pressure that caused
the register allocator to run out of registers. They can't be spilled
because the physical register lifetime was increased, not the virtual
register.
Ideally, we would detect what registers the COPY is for, but for now
I've just treated it as a scalar integer copy.1 parent d9cf0db commit 595ae8e
File tree
2 files changed
+22
-18
lines changed- llvm
- lib/Target/RISCV
- test/CodeGen/RISCV/rvv
2 files changed
+22
-18
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
860 | 860 | | |
861 | 861 | | |
862 | 862 | | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
863 | 867 | | |
864 | 868 | | |
865 | 869 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
308 | 308 | | |
309 | 309 | | |
310 | 310 | | |
311 | | - | |
312 | | - | |
313 | | - | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
314 | 314 | | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
320 | 318 | | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
| 319 | + | |
| 320 | + | |
325 | 321 | | |
326 | | - | |
327 | | - | |
328 | | - | |
329 | | - | |
330 | | - | |
| 322 | + | |
| 323 | + | |
331 | 324 | | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
332 | 332 | | |
333 | 333 | | |
334 | | - | |
| 334 | + | |
335 | 335 | | |
336 | 336 | | |
337 | 337 | | |
| |||
0 commit comments