Skip to content

JIT: optimize popped boxes in the importer#101303

Merged
AndyAyersMS merged 2 commits intodotnet:mainfrom
AndyAyersMS:Fix81229
Apr 20, 2024
Merged

JIT: optimize popped boxes in the importer#101303
AndyAyersMS merged 2 commits intodotnet:mainfrom
AndyAyersMS:Fix81229

Conversation

@AndyAyersMS
Copy link
Member

Fixes #82291.

@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Apr 19, 2024
@AndyAyersMS
Copy link
Member Author

@TIHan PTAL
cc @dotnet/jit-contrib

Didn't see any SPMI diffs from this, but the new test case Slow methods now get optimized, eg

; Assembly listing for method Runtime_82291:GetValueOrNullSlow2[int]() (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op
;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int32>
;
; Lcl frame size = 0

G_M56457_IG01:  ;; offset=0x0000
						;; size=0 bbWeight=1 PerfScore 0.00
G_M56457_IG02:  ;; offset=0x0000
       ret      
						;; size=1 bbWeight=1 PerfScore 1.00

@AndyAyersMS
Copy link
Member Author

Failures are all known, but some not covered by build analysis.

There were a handful of diffs after all: diffs

@AndyAyersMS AndyAyersMS requested a review from TIHan April 20, 2024 02:20
@AndyAyersMS AndyAyersMS merged commit ce84f1d into dotnet:main Apr 20, 2024
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
@github-actions github-actions bot locked and limited conversation to collaborators May 21, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Strange boxing deopt

2 participants