Skip to content
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

Merged
merged 1 commit into from
May 25, 2021

Conversation

kunalspathak
Copy link
Member

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 in r0 but before using it in ldr pc, overwrite it with different variable lr before we try to reload it in mov r7, r0.

image

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:

image

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 20, 2021
@kunalspathak kunalspathak reopened this May 20, 2021
@kunalspathak
Copy link
Member Author

@dotnet/jit-contrib

@kunalspathak
Copy link
Member Author

I will post asmdiff summary (if there is one) later today.

Copy link
Member

@AndyAyersMS AndyAyersMS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@kunalspathak
Copy link
Member Author

runtime-coreclr jitstressregs failures are related to #52954. I need to investigate the failures in runtime-coreclr libraries-jitstressregs.

@kunalspathak
Copy link
Member Author

I tried to repro the failures on runtime-coreclr libraries-jitstressregs and not able to repro them:

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.

@kunalspathak
Copy link
Member Author

The failures are related to #53042

@kunalspathak kunalspathak merged commit f8066b3 into dotnet:main May 25, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Jun 24, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Assertion failed 'varDsc->lvLiveInOutOfHndlr || ((regSet.GetMaskVars() & regMask) == 0)
2 participants