-
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
[JIT] LclMorph GT_IND(GT_LCL_VAR_ADDR)
=> GT_CAST(GT_LCL_VAR)
narrow-cast only
#81454
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue Detailsnull
|
3c27c57
to
af037ec
Compare
GT_IND(GT_LCL_VAR_ADDR)
=> GT_LCL_VAR
for small types
GT_IND(GT_LCL_VAR_ADDR)
=> GT_LCL_VAR
for small typesGT_IND(GT_LCL_VAR_ADDR)
=> GT_CAST(GT_LCL_VAR)
for small types
GT_IND(GT_LCL_VAR_ADDR)
=> GT_CAST(GT_LCL_VAR)
for small typesGT_IND(GT_LCL_VAR_ADDR)
=> GT_CAST(GT_LCL_VAR)
for small types
GT_IND(GT_LCL_VAR_ADDR)
=> GT_CAST(GT_LCL_VAR)
for small typesGT_IND(GT_LCL_VAR_ADDR)
=> GT_CAST(GT_LCL_VAR)
for small types
GT_IND(GT_LCL_VAR_ADDR)
=> GT_CAST(GT_LCL_VAR)
for small typesGT_IND(GT_LCL_VAR_ADDR)
=> GT_CAST(GT_LCL_VAR)
narrow-cast only
@dotnet/jit-contrib cc @jakobbotsch There are a lot of ARM32 regressions, but this is due to the CSE rules for that target. |
Can you show some examples? What are/aren't we CSE'ing that changed from before? |
@jakobbotsch diff dump of one of the ARM32 regressions |
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
@SingleAccretion Ok, looks like I was seeing things before - allowed looking at long types for 32bit and there are quite a bit of improvements. |
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!
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.
We looked at one of the arm32 regressions offline and it was caused by CSE being less aggressive due to more tracked locals now existing, so not something we should be compensating for here.
Description
Will resolve: #55064
There are cases where
IND{short}(LCL_VAR_ADDR{int})
can be transformed toCAST{int <- short <- int}(LCL_VAR{int})
to prevent storing and reading from memory, but only if the indirection is narrow for integer types.This transformation will not occur for the storage of an assignment:
ASG(IND{short}(LCL_VAR_ADDR{int}}, ..)
.Acceptance Criteria