-
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
Split and simplify fgMorphOneAsgBlockOp
#76793
Split and simplify fgMorphOneAsgBlockOp
#76793
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsThe main goal of this change is to extract the parts of To that end:
|
aa5115b
to
4284dc3
Compare
@dotnet/jit-contrib The CI is down, but this is otherwise ready for review. |
No point in creating block nodes for simple types.
Avoids a couple regressions.
A zero-diff checkpoint.
A zero-diff checkpoint.
3 small regressions across all of SPMI due to less aggressive CSEing ("LCL_FLD" is costed cheaper than "IND(ADDR(LCL_VAR))").
PrepareDst will have killed assertions already.
fdcfc5b
to
2aa8433
Compare
@dotnet/jit-contrib |
// Arguments: | ||
// store - The store node | ||
// | ||
void Lowering::TryRetypingFloatingPointStoreToIntegerStore(GenTree* store) |
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 original retyping was done under MinOpts too, so this follows; there is of course an argument to be made it should not.
/azp run runtime-coreclr jitstress, runtime-coreclr libraries-jitstress, Fuzzlyn |
Azure Pipelines successfully started running 3 pipeline(s). |
The main goal of this change is to extract the parts of
fgMorphOneAsgBlockOp
that actually do useful work and delete the rest.To that end:
initobj <primitive>
asstind <primitive zero>
.fgMorphOneAsgBlockOp
: extract the "init block" part to the general block morpher, leave the copy block part as-is (for now).