[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