KEMBAR78
[JIT][arm64] double dmb · Issue #60023 · dotnet/runtime · GitHub
Skip to content

[JIT][arm64] double dmb #60023

@EgorBo

Description

@EgorBo
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?)

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMItenet-performancePerformance related issue

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions