-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
No retyping arm/arm64. #36866
No retyping arm/arm64. #36866
Conversation
ebacf18
to
befd9a1
Compare
if (effectiveVal->IsCall()) | ||
{ | ||
#ifdef DEBUG | ||
GenTreeCall* call = effectiveVal->AsCall(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PTAL @CarolEidt, @dotnet/jit-contrib |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with a few comments - thanks for expanding the test!
src/coreclr/src/jit/compiler.h
Outdated
|
||
// Returns true if the method returns a value in more than one return register, | ||
// it should replace/be merged with compMethodReturnsMultiRegRetType when #36868 is fixed. | ||
bool compMethodReturnsResInMultiplyRegisters() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Even if temporary, I think it would be good to 1) describe in what way it is different (in particular talk about the special handling required for SIMD types, soon to be additional ones for x64/ux, that are passed in a single register), and 2) rename it to be something like compMethodReturnsMultiRegRegTypeAlternate
.
and disable failung tests with old retyping.
Support
compDoOldStructRetyping
for arm64 and arm32.Because of #37341 this requires some special handling in import/morph phases.
No diffs with
compDoOldStructRetyping
, diffs, when retyping is disabled, are similar to what we saw on x64 and x86 (!compDoOldStructRetyping
) around ~0.18% regression because ofASG(LCL_VAR with 1 field, call struct
handling.No test failures (note that I will have to disable the test from #37341 because it is failing with
compDoOldStructRetyping
), I have triggered jitstress and jitstressregs for the changes.