Skip to content

[Arm64] Unused HFA arguments still get written to stack #35631

@BruceForstall

Description

@BruceForstall

For example, in System.Collections.Immutable.dll, Requires:NotNullAllowStructs(Vector1,String)`:

;* V00 arg0         [V00    ] (  0,  0   )  simd16  ->  zero-ref    HFA(simd16)  do-not-enreg[XS] addr-exposed
;* V01 arg1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd
;
; Lcl frame size = 16

G_M20125_IG01:
        A9BE7BFD          stp     fp, lr, [sp,#-32]!
        910003FD          mov     fp, sp
        3D8007A0          str     q0, [fp,#16]                ; *** Unused

G_M20125_IG02:
        A8C27BFD          ldp     fp, lr, [sp],#32
        D65F03C0          ret     lr

Here, HFA argument in q0 is still written to the stack, despite being unused.

category:cq
theme:register-allocator
skill-level:intermediate
cost:medium

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions