Fix condition for calling EvalArgsToTemps#22791
Conversation
|
The reason that this issue didn't exist prior to #18358 was that the body of |
| #ifdef DEBUG | ||
| if (verbose) | ||
| { | ||
| JITDUMP("ArgTable for %d.%s after fgMorphArgs:\n", call->gtTreeID, GenTree::OpName(call->gtOper)); |
There was a problem hiding this comment.
This, and the similar change below, are because it's hard to figure out which argtable dump is for which calls when there are nested calls.
AndyAyersMS
left a comment
There was a problem hiding this comment.
Looks good. Suggest one minor comment edit.
| // all cases of fgMakeOutgoingStructArgCopy() being called. hasStackArgCopy | ||
| // is added to make sure to call EvalArgsToTemp. | ||
| if (!reMorphing && (call->fgArgInfo->HasRegArgs())) | ||
| if (!reMorphing && (call->fgArgInfo->HasRegArgs() || call->fgArgInfo->NeedsTemps())) |
There was a problem hiding this comment.
You can probably just delete the second part of this comment.
There was a problem hiding this comment.
Yes; I think I intended to do that after changing the first part, but apparently forgot.
|
test OSX10.12 x64 Checked Innerloop Build and Test |
|
@dotnet-bot retest this please |
`fgArgInfo::ArgsComplete()` checks for additional conditions requiring temps that are not checked for in the body of `fgMorphArgs()`. However, if there are no register args, it won't be called. Fix #19256
|
test OSX10.12 x64 Checked Innerloop Build and Test |
|
test Ubuntu x64 Checked CoreFX Test |
|
test Windows_NT x64 Release CoreFX Tests |
|
test Ubuntu x64 Checked CoreFX Tests |
In dotnet#22791 I was creating struct assignments with COMMAs on the rhs, but that isn't handled downstream. Fix #23059
Fix condition for calling EvalArgsToTemps Commit migrated from dotnet/coreclr@fd3afca
In dotnet/coreclr#22791 I was creating struct assignments with COMMAs on the rhs, but that isn't handled downstream. Fix dotnet/coreclr#23059 Commit migrated from dotnet/coreclr@384eefb
fgArgInfo::ArgsComplete()checks for additional conditions requiring temps that are not checked for in the body offgMorphArgs(). However, if there are no register args, it won't be called.Fix #19256