-
Notifications
You must be signed in to change notification settings - Fork 16.1k
[RISCV] Remove RISCVVMV0Elimination pass #175147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
4417d3e to
6cdec0b
Compare
|
I am doing some attempts to fix some scheduling issues caused by We can pass the unit tests after this PR and we see some reductions of spill/reload/moves as well. I will try to make it pass the llvm-testsuite next week. |
|
I'm not sure if anythings changed in the RegisterCoalescer in the meantime, but do we still run into the issue where it will coalesce registers so instructions will have multiple operands in the vmv0 class? e.g. |
6cdec0b to
10cc824
Compare
I didn't change |
[RISCV] Add an artificial between copies of v0 and vmv0 users This avoids the overlap of v0 and fixes some correctness issues.
10cc824 to
5f8019b
Compare
This reverts commit 5f8019b.
|
Status updates:
|
| ; FOLDING-NEXT: vmv.v.i v8, 0 | ||
| ; FOLDING-NEXT: vmerge.vim v9, v8, -1, v0 | ||
| ; FOLDING-NEXT: vlm.v v0, (a1) | ||
| ; FOLDING-NEXT: vmv1r.v v0, v10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regression.
| ; ZVBB-NEXT: vmv1r.v v0, v13 | ||
| ; ZVBB-NEXT: vmerge.vim v10, v22, 1, v0 | ||
| ; ZVBB-NEXT: vmerge.vim v16, v6, 1, v0 | ||
| ; ZVBB-NEXT: vmv2r.v v28, v26 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regression.
| ; RV64-NEXT: csrr a3, vlenb | ||
| ; RV64-NEXT: slli a3, a3, 3 | ||
| ; RV64-NEXT: sub sp, sp, a3 | ||
| ; RV64-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regression.
[RISCV] Remove RISCVVMV0Elimination pass
This removes the use of
RISCVVMV0Eliminationpass.[RISCV] Add an artificial between copies of v0 and vmv0 users
This fixes the only test with
ran out of registerserror.This avoids the overlap of v0 and fixes some correctness issues.
[RISCV] Change the limit of register pressure VMV0 to 2
Try to fix regressions.
[RISCV] Change the limit of register pressure VMV0 to 1
Try to fix regressions.