Skip to content

JIT: Move passed-by-reference argument information to new ABI info #112449

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

Merged
merged 1 commit into from
Feb 12, 2025

Conversation

jakobbotsch
Copy link
Member

No description provided.

@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Feb 11, 2025
Copy link
Contributor

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

@jakobbotsch
Copy link
Member Author

jakobbotsch commented Feb 12, 2025

PTAL @dotnet/jit-contrib @dotnet/samsung @shushanhf

No diffs

@jakobbotsch jakobbotsch requested review from tomeksowi, shushanhf and a team February 12, 2025 10:15
Copy link
Contributor

@tomeksowi tomeksowi left a comment

Choose a reason for hiding this comment

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

Thanks

Comment on lines +1674 to +1676
#if FEATURE_IMPLICIT_BYREFS
dsc->lvIsImplicitByRef = lvaParameterPassingInfo[i].IsPassedByReference();
#endif // FEATURE_IMPLICIT_BYREFS
Copy link
Contributor

Choose a reason for hiding this comment

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

I have found in the past Marking V%02i as a byref parameter from below to be a useful crumb to have a quick understanding of which parameters are by-ref. Preserve it by moving here?

Copy link
Member Author

Choose a reason for hiding this comment

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

It currently gets printed by ABIPassingInformation::Dump, so at the top of the JIT dump you will see:

static void Foo(long a, object b, Guid c, List<string>.Enumerator d)
{
}
Parameter V00 ABI info: [00..08) reg x0
Parameter V01 ABI info: [00..08) reg x1
Parameter V02 ABI info: 2 segments
  [0] [00..08) reg x2
  [1] [08..16) reg x3
Parameter V03 ABI info: [00..08) reg x4 (implicit by-ref)

Let me know what you think.

Copy link
Contributor

Choose a reason for hiding this comment

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

LGTM.

@jakobbotsch jakobbotsch merged commit a4f9ec2 into dotnet:main Feb 12, 2025
109 of 112 checks passed
@jakobbotsch jakobbotsch deleted the abi-implicit-byrefs branch February 12, 2025 17:01
@github-actions github-actions bot locked and limited conversation to collaborators Mar 15, 2025
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.

5 participants