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

Display class names and string literals in asm #55970

Merged
merged 10 commits into from
Jul 27, 2021

Conversation

EgorBo
Copy link
Member

@EgorBo EgorBo commented Jul 19, 2021

Just a little change to display class names and string literals in the asm, e.g.:

image
xarch for now (slightly more verbose changes to enable it for arm)

GDV emits class handles a lot so it's quite useful to be able to see actual types in asm without DUMPs.

@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 Jul 19, 2021
@EgorBo
Copy link
Member Author

EgorBo commented Jul 20, 2021

@dotnet/jit-contrib PTAL

@kunalspathak
Copy link
Member

xarch for now (slightly more verbose changes to enable it for arm)

I did similar thing for arm64 adrp/add instructions in #38671. It included field and method names as well. May be reuse some of that logic?

src/coreclr/jit/codegen.h Outdated Show resolved Hide resolved
src/coreclr/jit/emitxarch.cpp Outdated Show resolved Hide resolved
src/coreclr/jit/emitxarch.cpp Outdated Show resolved Hide resolved
@BruceForstall
Copy link
Member

How will this work with SuperPMI? Do we already make the necessary queries when not generating ASM/JitDump, so when replaying we'll get this improved output? If not, can the appropriate queries be added under COMPlus_EnableExtraSuperPmiQueries?

Copy link
Member

@kunalspathak kunalspathak left a comment

Choose a reason for hiding this comment

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

Overall looks good. Added some comments.

src/coreclr/jit/emit.cpp Show resolved Hide resolved
src/coreclr/jit/emit.cpp Show resolved Hide resolved
src/coreclr/jit/emit.cpp Outdated Show resolved Hide resolved
src/coreclr/jit/emit.cpp Show resolved Hide resolved
EgorBo and others added 2 commits July 23, 2021 20:12
Co-authored-by: Kunal Pathak <Kunal.Pathak@microsoft.com>
@EgorBo
Copy link
Member Author

EgorBo commented Jul 23, 2021

How will this work with SuperPMI?

@BruceForstall works fine locally, zero diffs. I guess all these eeXName apis just return hakishSmth on superpmi.
And as it turns out we already do it for amr64 after Kunal's PR #38671

Copy link
Member

@kunalspathak kunalspathak left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks!

@EgorBo
Copy link
Member Author

EgorBo commented Jul 24, 2021

@BruceForstall PTAL (PR is currently blocked on your change request).

@EgorBo
Copy link
Member Author

EgorBo commented Jul 27, 2021

Merging to Main. It only affects debug/checked builds.

@EgorBo EgorBo merged commit 578f81a into dotnet:main Jul 27, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Aug 26, 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.

3 participants