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

JIT: Expand inlined delegate calls in correct order #89175

Merged
merged 1 commit into from
Jul 20, 2023

Conversation

jakobbotsch
Copy link
Member

@jakobbotsch jakobbotsch commented Jul 19, 2023

The access of the target instance was incorrectly inserted right after the location of the delegate instance. Since this indirection can throw a NRE this is incorrect; to get the proper inlined behavior, the indirection must happen only after all arguments have been evaluated.

Fix #75832

Large number of diffs expected due to reordering, with relatively small overall size-wise diffs.

The access of the target instance was incorrectly inserted right after
the location of the delegate instance. Since this indirection can throw
a NRE this is incorrect; to get the proper inlined behavior, the
indirection must happen only after all arguments have been evaluated.

Fix dotnet#75832
@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, 2023
@ghost ghost assigned jakobbotsch Jul 19, 2023
@ghost
Copy link

ghost commented Jul 19, 2023

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

Issue Details

The access of the target instance was incorrectly inserted right after the location of the delegate instance. Since this indirection can throw a NRE this is incorrect; to get the proper inlined behavior, the indirection must happen only after all arguments have been evaluated.

Fix #75832

Author: jakobbotsch
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@jakobbotsch
Copy link
Member Author

/azp run runtime

@azure-pipelines
Copy link

No commit pushedDate could be found for PR 89175 in repo dotnet/runtime

@jakobbotsch
Copy link
Member Author

/azp run runtime, runtime-coreclr jitstress, runtime-coreclr libraries-jitstress

@azure-pipelines
Copy link

No commit pushedDate could be found for PR 89175 in repo dotnet/runtime

@jakobbotsch
Copy link
Member Author

/azp run runtime, runtime-coreclr jitstress, runtime-coreclr libraries-jitstress

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@jakobbotsch
Copy link
Member Author

Failures are known.

Diffs. As expected some minor size-wise diffs, with a large count of diffs due to the reordered IR.

cc @dotnet/jit-contrib PTAL @BruceForstall

@jakobbotsch jakobbotsch merged commit 3db5172 into dotnet:main Jul 20, 2023
@jakobbotsch jakobbotsch deleted the fix-75832 branch July 20, 2023 20:29
@ghost ghost locked as resolved and limited conversation to collaborators Aug 20, 2023
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.

JIT: Late expansion of delegate calls can reorder null checks with other argument exceptions
2 participants