- 
                Notifications
    
You must be signed in to change notification settings  - Fork 5.2k
 
          [JIT] LclMorph GT_IND(GT_LCL_VAR_ADDR) => GT_CAST(GT_LCL_VAR) narrow-cast only
          #81454
        
          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
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 <[email protected]>
| 
           @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