-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
[RISC-V] Remove unused stack probing methods #112347
Conversation
RISC-V Release-CLR-QEMU: 9456 / 9535 (99.17%)
Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz RISC-V Release-FX-QEMU: 0 / 259 (0.00%)
Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz Build information and commandsGIT: RISC-V Release-CLR-QEMU: 9463 / 9535 (99.24%)
Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz RISC-V Release-FX-QEMU: 0 / 259 (0.00%)
Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz Build information and commandsGIT: |
RISC-V Release-CLR-QEMU: 9463 / 9535 (99.24%)
Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz RISC-V Release-FX-QEMU: 0 / 259 (0.00%)
Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz Build information and commandsGIT: RISC-V Release-CLR-QEMU: 9463 / 9535 (99.24%)
Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz RISC-V Release-FX-QEMU: 0 / 259 (0.00%)
Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz Build information and commandsGIT: |
RISC-V Release-CLR-QEMU: 9463 / 9535 (99.24%)
Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz RISC-V Release-FX-QEMU: 0 / 259 (0.00%)
Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz Build information and commandsGIT: |
f8034ce is being scheduled for building and testingGIT: Release-FX-tests FAILEDbuildinfo.json |
RISC-V Release-CLR-QEMU: 9458 / 9534 (99.20%)
Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz Build information and commandsGIT: RISC-V Release-FX-QEMU: 580657 / 612697 (94.77%)
Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz Build information and commandsGIT: RISC-V Release-CLR-VF2: 9458 / 9534 (99.20%)
Release-CLR-VF2.md, Release-CLR-VF2.xml, testclr_output.tar.gz Build information and commandsGIT: RISC-V Release-FX-VF2: 389221 / 423609 (91.88%)
Build information and commandsGIT: |
@@ -1750,9 +1746,6 @@ void CodeGen::genLclHeap(GenTree* tree) | |||
|
|||
// genDefineTempLabel(loop); | |||
|
|||
// tickle the page - Read from the updated SP - this triggers a page fault when on the guard page | |||
emit->emitIns_R_R_I(INS_lw, EA_4BYTE, REG_R0, REG_SPBASE, 0); |
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.
Just to make sure it's not doing anything shady, what's preventing the sp
from jumping over the guard page now?
8709e9d is being scheduled for building and testingGIT: |
That was a pretty good question - I thought this mechanism was somewhere else, but it turned out that it wasn't. So instead of removing stack probing I simplified it. I also removed I don't want to create more mess in this PR, so I will close it and open a new one. |
@@ -1719,23 +1717,20 @@ void CodeGen::genLclHeap(GenTree* tree) | |||
// addi regCnt, REG_R0, 0 | |||
// | |||
// Skip: | |||
// lui regTmp, eeGetPageSize()>>12 | |||
// lui regPageSize, eeGetPageSize()>>12 | |||
// addi regTmp, SP, 0 |
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.
Is there a reason not to decrement sp
directly?
This PR removes unneeded stack probing methods on riscv64. It was a leftover from la64, which was a legacy from arm64... On rv64 we are doing that a little bit different.
About
genAllocLclFrame
:On riscv64 It was used to probe stack or let's say it was supposed to be used for that. In fact it was yet another legacy code from arm64 that was never used.
Part of #84834, cc @dotnet/samsung