[all-commits] [llvm/llvm-project] 19c33f: [AArch64] Override hasSideEffects for LDAR/STLR in...

Kunal Chadha via All-commits all-commits at lists.llvm.org
Tue Sep 22 10:37:49 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 19c33fb826ed11652280fa0a4161675963d09991
      https://github.com/llvm/llvm-project/commit/19c33fb826ed11652280fa0a4161675963d09991
  Author: Kunal Chadha <kunachad at qti.qualcomm.com>
  Date:   2026-09-22 (Tue, 22 Sep 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/test/CodeGen/AArch64/shrinkwrap-split-restore-point.mir
    M llvm/test/tools/llvm-mca/AArch64/A64FX/A64-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Ampere/Ampere1B/basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Apple/M1-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Cortex/A320-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Cortex/A510-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Cortex/A57-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Nano-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Ultra-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/HiSilicon/hip12-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/HiSilicon/tsv110-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Olympus/basic-instructions.s

  Log Message:
  -----------
  [AArch64] Override hasSideEffects for LDAR/STLR instructions (#224096)

Override `hasSideEffects()` for `LoadAcquire` and `StoreRelease`.

`LoadAcquire` and `StoreRelease` already have their memory ordering
semantics modeled via atomic MMO flags, so they should not additionally
be marked as having unmodeled side effects.

Marking these instructions as having unmodeled side effects caused
`ShrinkWrap::useOrDefCSROrFI()` to conservatively treat basic blocks
containing them as potentially using the stack. This prevented
ShrinkWrap optimizations such as splitting restore points during
post-shrink-wrapping. The tests added in this PR cover this case.

Updated llvm-mca expectations for the affected instructions.

Fixes #223021



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list