Skip to content

Conversation

@jakobbotsch
Copy link
Member

Previously, for struct args, we would use the class handle of the
argument (from the IL stack) instead of the class handle from the
signature. These may sometimes differ in __Canon when inlining shared
code. This change switches the class handle stored in CallArg to always
be the type reported back by the EE when asking about the signature.

This should no longer have the positive diffs the comment talks about; those positive diffs (and more) were realized in #68986 by the removal of fgMorphCanUseLclFldForCopy.

Previously, for struct args, we would use the class handle of the
argument (from the IL stack) instead of the class handle from the
signature. These may sometimes differ in __Canon when inlining shared
code. This change switches the class handle stored in CallArg to always
be the type reported back by the EE when asking about the signature.
@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 29, 2022
@ghost ghost assigned jakobbotsch May 29, 2022
@ghost
Copy link

ghost commented May 29, 2022

Tagging subscribers to this area: @JulieLeeMSFT
See info in area-owners.md if you want to be subscribed.

Issue Details

Previously, for struct args, we would use the class handle of the
argument (from the IL stack) instead of the class handle from the
signature. These may sometimes differ in __Canon when inlining shared
code. This change switches the class handle stored in CallArg to always
be the type reported back by the EE when asking about the signature.

This should no longer have the positive diffs the comment talks about; those positive diffs (and more) were realized in #68986 by the removal of fgMorphCanUseLclFldForCopy.

Author: jakobbotsch
Assignees: jakobbotsch
Labels:

area-CodeGen-coreclr

Milestone: -

@jakobbotsch
Copy link
Member Author

cc @dotnet/jit-contrib, some tiny diffs.

@jakobbotsch jakobbotsch merged commit 2659885 into dotnet:main May 31, 2022
@jakobbotsch jakobbotsch deleted the remove-args-signature-class-handle-quirk branch May 31, 2022 08:51
@ghost ghost locked as resolved and limited conversation to collaborators Jun 30, 2022
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.

2 participants