Skip to content
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: Expand delegate calls in morph #75841

Closed
wants to merge 1 commit into from

Conversation

jakobbotsch
Copy link
Member

@jakobbotsch jakobbotsch commented Sep 19, 2022

Expand delegate calls in morph to allow CSE'ing and hoisting of delegate targets/instances.

Fix #75832
Close #75255

Also fix printing of GT_CALL nodes. Late args were not being printed in correct evaluation order.

Expand delegate calls in morph to allow CSE'ing and hoisting of delegate
targets/instances.

Fix dotnet#75832
Close dotnet#75255
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 19, 2022
@ghost ghost assigned jakobbotsch Sep 19, 2022
@ghost
Copy link

ghost commented Sep 19, 2022

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

Expand delegate calls in morph to allow CSE'ing and hoisting of delegate targets/instances.

Fix #75832
Close #75255

Author: jakobbotsch
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@jakobbotsch
Copy link
Member Author

Looks like we may need to do something about #75751 before this to avoid regressions, I'm seeing many diffs like the following, where we now clobber an argument register containing a local we need:

 G_M13290_IG02:        ; gcrefRegs=00000002 {rcx}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[rcx]
-       movzx    rdx, byte  ptr [rcx+10H]
+       mov      gword ptr [rsp+08H], rcx
+       ; GC ptr vars +{V00}
        mov      rax, gword ptr [rcx+08H]
        ; gcrRegs +[rax]
        mov      rcx, gword ptr [rax+08H]
-                                               ;; size=12 bbWeight=1    PerfScore 6.00
+       mov      rdx, gword ptr [rsp+08H]
+       ; gcrRegs +[rdx]
+       movzx    rdx, byte  ptr [rdx+10H]
+       ; gcrRegs -[rdx]
+                                               ;; size=22 bbWeight=1    PerfScore 8.00
 G_M13290_IG03:        ; , epilog, nogc, extend
-       tail.jmp [rax+18H]hackishMethodName
+       tail.jmp [rax+18H]

@ghost ghost closed this Oct 20, 2022
@ghost
Copy link

ghost commented Oct 20, 2022

Draft Pull Request was automatically closed for 30 days of inactivity. Please let us know if you'd like to reopen it.

@ghost ghost locked as resolved and limited conversation to collaborators Nov 19, 2022
This pull request was closed.
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
1 participant