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: Enable AddrMode for GC types on arm64 #65622

Closed
wants to merge 3 commits into from

Conversation

EgorBo
Copy link
Member

@EgorBo EgorBo commented Feb 19, 2022

Follow up to #61293 (#65468 did it for floating points recently) to handle gc types too, e.g.:

object Test(object[] array, int i) => array[i];
; Method Tests4:Test(System.Object[],int):System.Object:this
G_M52569_IG01:
            stp     fp, lr, [sp,#-16]!
            mov     fp, sp
G_M52569_IG02:
            ldr     w0, [x1,#8]
            cmp     w2, w0
            bhs     G_M52569_IG04
-           ubfiz   x0, x2, #3, #32
-           add     x0, x0, #16
-           ldr     x0, [x1, x0]
+           add     x0, x1, #16
+           ldr     x0, [x0, w2, UXTW #3]
G_M52569_IG03:
            ldp     fp, lr, [sp],#16
            ret     lr
G_M52569_IG04:
            bl      CORINFO_HELP_RNGCHKFAIL
            brk_windows #0
-; Total bytes of code: 48
+; Total bytes of code: 44

Diffs:

benchmarks.run.windows.arm64.checked.mch:
Total bytes of delta: -6520 (-0.04 % of base)

coreclr_tests.pmi.windows.arm64.checked.mch:
Total bytes of delta: -2800 (-0.00 % of base)

libraries.pmi.windows.arm64.checked.mch:
Total bytes of delta: -35716 (-0.07 % of base)

libraries_tests.pmi.windows.arm64.checked.mch:
Total bytes of delta: -32000 (-0.02 % of base)

@ghost ghost assigned EgorBo Feb 19, 2022
@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 Feb 19, 2022
@ghost
Copy link

ghost commented Feb 19, 2022

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

Issue Details
object Test(object[] array, int i) => array[i];
; Method Tests4:Test(System.Object[],int):System.Object:this
G_M52569_IG01:
            stp     fp, lr, [sp,#-16]!
            mov     fp, sp
G_M52569_IG02:
            ldr     w0, [x1,#8]
            cmp     w2, w0
            bhs     G_M52569_IG04
-           ubfiz   x0, x2, #3, #32
-           add     x0, x0, #16
-           ldr     x0, [x1, x0]
+           add     x0, x1, #16
+           ldr     x0, [x0, w2, UXTW #3]
G_M52569_IG03:
            ldp     fp, lr, [sp],#16
            ret     lr
G_M52569_IG04:
            bl      CORINFO_HELP_RNGCHKFAIL
            brk_windows #0
-; Total bytes of code: 48
+; Total bytes of code: 44
Author: EgorBo
Assignees: EgorBo
Labels:

area-CodeGen-coreclr

Milestone: -

@EgorBo EgorBo marked this pull request as draft February 19, 2022 19:50
@EgorBo
Copy link
Member Author

EgorBo commented Feb 19, 2022

/azp list

@azure-pipelines

This comment was marked as resolved.

@EgorBo
Copy link
Member Author

EgorBo commented Feb 19, 2022

/azp run runtime-coreclr jitstressregs, runtime-coreclr gcstress0x3-gcstress0xc, runtime-coreclr outerloop

@EgorBo EgorBo marked this pull request as ready for review February 19, 2022 23:07
@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@EgorBo
Copy link
Member Author

EgorBo commented Feb 24, 2022

/azp run runtime-coreclr outerloop

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@EgorBo
Copy link
Member Author

EgorBo commented Feb 24, 2022

/azp run runtime-coreclr jitstressregs, runtime-coreclr gcstress0x3-gcstress0xc

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@EgorBo EgorBo closed this Feb 25, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Mar 27, 2022
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.

1 participant