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][arm64] double dmb #60023

Closed
EgorBo opened this issue Oct 5, 2021 · 1 comment · Fixed by #60219
Closed

[JIT][arm64] double dmb #60023

EgorBo opened this issue Oct 5, 2021 · 1 comment · Fixed by #60219
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI tenet-performance Performance related issue
Milestone

Comments

@EgorBo
Copy link
Member

EgorBo commented Oct 5, 2021

public class Program
{
    volatile int a;

    void Test2(Program p) => p.a = a;
}

currently emits:

; Method Program:Test2(Program):this
G_M27705_IG01:              ;; offset=0000H
        A9BF7BFD          stp     fp, lr, [sp,#-16]!
        910003FD          mov     fp, sp
						;; bbWeight=1    PerfScore 1.50

G_M27705_IG02:              ;; offset=0008H
        B9400800          ldr     w0, [x0,#8]
        D50339BF          dmb     ishld
        D5033BBF          dmb     ish
        B9000820          str     w0, [x1,#8]
						;; bbWeight=1    PerfScore 24.00

G_M27705_IG03:              ;; offset=0018H
        A8C17BFD          ldp     fp, lr, [sp],#16
        D65F03C0          ret     lr
						;; bbWeight=1    PerfScore 2.00
; Total bytes of code: 32

I guess the 2nd dmb is redundant here (not even mentioning that both of them actually redundant here?)

@EgorBo EgorBo added the tenet-performance Performance related issue label Oct 5, 2021
@dotnet-issue-labeler dotnet-issue-labeler bot added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI untriaged New issue has not been triaged by the area owner labels Oct 5, 2021
@ghost
Copy link

ghost commented Oct 5, 2021

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

Issue Details
public class Program
{
    volatile int a;

    void Test2(Program p) => p.a = a;
}

currently emits:

; Method Program:Test2(Program):this
G_M27705_IG01:              ;; offset=0000H
        A9BF7BFD          stp     fp, lr, [sp,#-16]!
        910003FD          mov     fp, sp
						;; bbWeight=1    PerfScore 1.50

G_M27705_IG02:              ;; offset=0008H
        B9400800          ldr     w0, [x0,#8]
        D50339BF          dmb     ishld
        D5033BBF          dmb     ish
        B9000820          str     w0, [x1,#8]
						;; bbWeight=1    PerfScore 24.00

G_M27705_IG03:              ;; offset=0018H
        A8C17BFD          ldp     fp, lr, [sp],#16
        D65F03C0          ret     lr
						;; bbWeight=1    PerfScore 2.00
; Total bytes of code: 32

I guess the 2nd dmb is redundant here (not even mentioning that both of them actually redundant here?)

Author: EgorBo
Assignees: -
Labels:

tenet-performance, area-CodeGen-coreclr, untriaged

Milestone: -

@EgorBo EgorBo added this to the 7.0.0 milestone Oct 5, 2021
@EgorBo EgorBo removed the untriaged New issue has not been triaged by the area owner label Oct 5, 2021
@EgorBo EgorBo self-assigned this Oct 5, 2021
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Oct 9, 2021
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Oct 13, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Nov 12, 2021
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 tenet-performance Performance related issue
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

1 participant