Uh oh!
There was an error while loading. Please reload this page.
Simplify handling of multi-reg returns - #74499
Merged
Merged
Conversation
ghost
commented
Aug 24, 2022
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
SingleAccretionforce-pushed
the
Return-Cleanup
branch
from
August 24, 2022 13:44
20bd20a to
85abb89Compare
This was referenced Aug 24, 2022
SingleAccretionforce-pushed
the
Return-Cleanup
branch
from
August 24, 2022 18:09
85abb89 to
f46440eCompareSingleAccretionforce-pushed
the
Return-Cleanup
branch
2 times, most recently
from
September 7, 2022 20:57
45bd7f9 to
a5828ebCompareSingleAccretion
marked this pull request as ready for review
September 8, 2022 15:44
SingleAccretion
commented
Sep 8, 2022
ContributorAuthor
@dotnet/jit-contrib |
AndyAyersMS
commented
Sep 16, 2022
Member
@dotnet/jit-contrib anyone up for reviewing this? Looks like a nice cleanup but cuts across a lot of code. |
jakobbotsch
commented
Sep 22, 2022
Member
I can take a look, but it'll probably take me some time to get familiar with multi-reg returns. |
jakobbotsch
self-requested a review
September 22, 2022 13:50
Add the return type descriptor to compiler and use it. Delete target-specific code from "impFixupStructReturnType". The main target of this change is getting rid of the dependency of multi-reg RETURN backend code on exact struct handles on temps it expects as the sources.
Due to the buggy nature of the old code, the matrix for what substititions were allowed was as follows: ARM x86 LONG not-LCL_VAR NONE STRUCT LCL_VAR LCL_VAR This commit preserves this extremely quirky behavior. Unfortunately, just enabling the propagation is a CQ regression due to some RA issues.
SingleAccretionforce-pushed
the
Return-Cleanup
branch
from
September 25, 2022 19:53
030d67c to
e4a948eCompare| // TODO-Review: this seems unnecessary. Return ABI doesn't change under varargs. | ||
| && !op->AsCall()->IsVarargs() | ||
| #endif // defined(TARGET_ARMARCH) || defined(TARGET_LOONGARCH64) | ||
| ) |
Member
There was a problem hiding this comment.
Seems likely this check is not necessary at all anymore after #73059.
jakobbotsch
approved these changes
Oct 4, 2022
jakobbotsch
left a comment
Member
There was a problem hiding this comment.
This looks great to me, very nice cleanup. I'll trigger some stress legs.
jakobbotsch
commented
Oct 4, 2022
Member
/azp run runtime-coreclr jitstress |
|
Azure Pipelines successfully started running 1 pipeline(s). |
SingleAccretion
commented
Oct 6, 2022
ContributorAuthor
jakobbotsch
commented
Oct 6, 2022
Member
Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Keep the return descriptor for the method being compiled and use it in various places.
Deletes the dependence of multi-reg
RETURNbackend code on precise handles ofLCL_VARoperands.Fixes#36868.
Tiny amount of diffs on ARM64: some forward substitutions of non-multireg SIMDs are now allowed.