-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
More XARCH PUTARG_STK
CQ improvements
#67400
More XARCH PUTARG_STK
CQ improvements
#67400
Conversation
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsIncluded:
And also:
The latter change is responsible for some pretty nice diffs for - vmovss xmm0, dword ptr [ebp+0CH]
- sub esp, 4
- vmovss dword ptr [esp], xmm0
- vmovss xmm0, dword ptr [ebp+08H]
- sub esp, 4
- vmovss dword ptr [esp], xmm0
- vmovss xmm0, dword ptr [ebp+10H]
- sub esp, 4
- vmovss dword ptr [esp], xmm0
+ push dword ptr [ebp+0CH]
+ push dword ptr [ebp+08H]
+ push dword ptr [ebp+10H]
|
13e269a
to
3f00262
Compare
The primary benefit of this change is "free" support for complex addressing modes, which is always desirable when we are loading a primitive (as opposed to the large struct case, where we would not want to use the 3-operand LEA in a loop, but instead cache the address in a register). The additional (future) benefit is that we will no longer need to mark the source local as DNER, once LCL_VAR sources for struct PUTARG_STKs are supported.
3f00262
to
db08d4d
Compare
@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.
The diffs look great! Thanks for the contribution!
Included:
And also:
The latter change is responsible for some pretty nice x86 diffs for
TYP_FLOAT
sources:We are expecting good improvements, with a few regressions due to different RA choices.
There were too many x86 diffs for SPMI in CI, plus there is an SPMI outage, so here is the full locally obtained version: win-x86.
Highlights: