[all-commits] [llvm/llvm-project] 3f4bad: [AArch64] Fix for the pre-indexed paired load/stor...

Stelios Ioannou via All-commits all-commits at lists.llvm.org
Wed May 5 07:15:54 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3f4bad5eadacfc5322817eaa062dd272b52cfc54
      https://github.com/llvm/llvm-project/commit/3f4bad5eadacfc5322817eaa062dd272b52cfc54
  Author: Stelios Ioannou <stelios.ioannou at arm.com>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
    M llvm/test/CodeGen/AArch64/strpre-str-merge.mir

  Log Message:
  -----------
  [AArch64] Fix for the pre-indexed paired load/store optimization.

This patch fixes an issue where a pre-indexed store e.g.,
STR x1, [x0, #24]! with a store like STR x0, [x0, #8] are
merged into a single store: STP x1, x0, [x0, #24]!
. They shouldn’t be merged because the second store uses
x0 as both the stored value and the address and so it needs to be using the updated x0.
Therefore, it should not be folded into a STP <>pre.

Additionally a new test case is added to verify this fix.

Differential Revision: https://reviews.llvm.org/D101888

Change-Id: I26f1985ac84e970961e2cdca23c590fa6773851a




More information about the All-commits mailing list