runtime icon indicating copy to clipboard operation
runtime copied to clipboard

JIT: Expand delegate calls in morph

Open jakobbotsch opened this issue 2 years ago • 2 comments

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.

jakobbotsch avatar Sep 19 '22 15:09 jakobbotsch

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: -

ghost avatar Sep 19 '22 15:09 ghost

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]

jakobbotsch avatar Sep 20 '22 10:09 jakobbotsch

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

ghost avatar Oct 20 '22 11:10 ghost