-
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
Disallow IND<struct>
except as a source of STORE_DYN_BLK
#74784
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsNamely, the code which was wrapping temps created for calls. The only case remaining is the "original" wrapping, it will take a bit more work to get rid of it without regressions. Also perform a bit of miscellaneous code cleanup. We're expecting mostly positive diffs, with some regressions from the common sources:
|
0df0121
to
ea85b39
Compare
e307c88
to
0b9acb3
Compare
OBJ(ADDR(...))
wrapping from impNormStructVal
7705695
to
30406b3
Compare
638db72
to
af99572
Compare
6bb7f02
to
0fa4c9c
Compare
@dotnet/jit-contrib |
/azp run runtime-coreclr superpmi-diffs, runtime-coreclr superpmi-replay |
Azure Pipelines successfully started running 2 pipeline(s). |
0fa4c9c
to
9dc16fb
Compare
9dc16fb
to
a00a3f7
Compare
Thanks! |
Allowing for the removal of some
OBJ(ADDR(FIELD))
wrapping inimpNormStructVal
and others.The diffs are expected to be positive: we now allow
FIELD<struct>
substitution into struct args. There are a small number of regressions in CG collections that arise due to the fact unused R2R-affectedFIELD
call arguments interact less favorably with HIR DCE thanOBJ(ADDR(FIELD))
: the latter would be reduced toADDR(FIELD)
, which would then null-check the object directly instead of expanding into theNULLCHECK(ADD(obj, IND(...))
tree that the compiler cannot remove.