-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
GT_COPY source should be marked as consume during resolution #53041
Conversation
@dotnet/jit-contrib |
I will post asmdiff summary (if there is one) later today. |
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.
LGTM
|
I tried to repro the failures on COMPlus_TieredCompilation=0
COMPlus_JitStressRegs=2
COMPlus_DbgMiniDumpName=./coredump.1.dmp
COMPlus_DbgEnableMiniDump=1
Discovering: System.CodeDom.Tests (method display = ClassAndMethod, method display options = None)
Discovered: System.CodeDom.Tests (found 1423 of 1424 test cases)
Starting: System.CodeDom.Tests (parallel test collections = on, max threads = 46)
Finished: System.CodeDom.Tests
=== TEST EXECUTION SUMMARY ===
System.CodeDom.Tests Total: 5974, Errors: 0, Failed: 0, Skipped: 0, Time: 19.535s
System.CodeDom.Tests
----- end Fri May 21 10:02:56 PDT 2021 ----- exit code 0 ----------------------------------------------------------
COMPlus_TieredCompilation=0
COMPlus_JitStressRegs=0x80
COMPlus_DbgMiniDumpName=./coredump.1.dmp
COMPlus_DbgEnableMiniDump=1
Discovering: Common.Tests (method display = ClassAndMethod, method display options = None)
Discovered: Common.Tests (found 215 of 226 test cases)
Starting: Common.Tests (parallel test collections = on, max threads = 46)
Finished: Common.Tests
=== TEST EXECUTION SUMMARY ===
Common.Tests Total: 1893, Errors: 0, Failed: 0, Skipped: 0, Time: 16.424s
Common.Tests
----- end Fri May 21 10:27:26 PDT 2021 ----- exit code 0 ----------------------------------------------------------
exit code 0 means Exited Successfully I have triggered another run, just to be sure. |
The failures are related to #53042 |
While doing the resolution for switch tables, also take into account the source of
SWITCH_TABLE
operand and do not use that register of the source for resolution. Below is the failure that this PR fixes. On left-side, we load the jump table's index inr0
but before using it inldr pc
, overwrite it with different variablelr
before we try to reload it inmov r7, r0
.The fix is similar to the one done for Arm64 in #48833.
Fixes: #52945
While debugging, I also updated the natvis for
LinearScan
so it can display the inVarMap for each block along with register allocated to it. Sample screenshot: