Uh oh!
There was an error while loading. Please reload this page.
Update coredistools - #96286
Conversation
Update to the 1.2.0 version of the coredistools package. Also, implement a basic late disassembler for RyuJIT based on coredistools (previously, this depended on closed-source msvcdis). Various changes: 1. Remove unused AddressMap in SPMI. Removed a bunch of cases in the NearDiffer that were using it. 2. Change arm64 emitter unit tests to not require `verbose` 3. Always build in the late disassembler under DEBUG. It's only used when `JitLateDisasm` is set. 4. Implement new arm32 callback mechanism for movw/movt handling in the NearDiffer.
ghost
commented
Dec 23, 2023
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsUpdate to the 1.2.0 version of the coredistools package. Also, implement a basic late disassembler for RyuJIT based on Various changes:
|
1. Fix Risc-V build: only build LATE_DISASM for platforms where coredistool support exists. 2. Defer load and initialization of coredistools.dll library for LATE_DISASM until we actually need it. 3. For arm64, in late disasm, if there is a failure, try to recover by skipping one 4-byte instruction.
BruceForstall
commented
Dec 29, 2023
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
BruceForstall
commented
Dec 30, 2023
/azp run runtime-coreclr gcstress0x3-gcstress0xc |
|
Azure Pipelines successfully started running 1 pipeline(s). |
BruceForstall
commented
Dec 30, 2023
gcstress pipeline failure is #96364 |
@jakobbotsch @dotnet/jit-contrib PTAL Note this includes changes to work with the 1.4.0 coredistools, but it will also work with the existing 1.1.0 coredistools. Changing everyone to use 1.4.0 is #96291. This still has some problem with linux-x64 gcstress. The rebuild of cordistools to 1.4.0 is dotnet/jitutils#370. This build still fails in CI with linux-x64 and linux-arm64, but those have been manually built and packaged into an uploaded 1.4.0 coredistools. |
kunalspathak
left a comment
There was a problem hiding this comment.
Just reviewed changes in jit folder and they looks good except for few questions/suggestions.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
In particular, only load the coredistools library once, not once per function to disassemble.
BruceForstall
commented
Jan 3, 2024
superpmi pipeline failures are due to missing osx-arm64 MCH files due to new spmi collection |
jakobbotsch
commented
Jan 3, 2024
/azp run runtime-coreclr superpmi-replay, runtime-coreclr superpmi-diffs |
|
Azure Pipelines successfully started running 2 pipeline(s). |
| /*****************************************************************************/ | ||
| #ifdef USE_MSVCDIS |
There was a problem hiding this comment.
Do we ever use MSVCDIS? Can we remove all of this?
There was a problem hiding this comment.
We currently don't, but we could resurrect the code and use it. It shouldn't be too hard to do so, and there might be benefits. The only downside is it's not open source. So I'd prefer to just leave it.
| #if 0 | ||
| // We might want to do something similar for mov/movk/movk/movk sequences on Arm64. The following code was | ||
| // previously used, but currently is not active. |
There was a problem hiding this comment.
I'm not convinced yet that we don't need (or will never need) this, so I think it's worth leaving.
Update to the 1.4.0 version of the coredistools package.
Also, implement a basic late disassembler for RyuJIT based on
coredistools (previously, this depended on closed-source msvcdis).
Various changes:
the NearDiffer that were using it.
verboseused when
JitLateDisasmis set.in the NearDiffer.