[all-commits] [llvm/llvm-project] 331904: [AArch64] merge index address with large offset in...

Allen via All-commits all-commits at lists.llvm.org
Thu Aug 15 03:23:58 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 33190490c667aaf8b08d5af8b8ce84524f856e80
      https://github.com/llvm/llvm-project/commit/33190490c667aaf8b08d5af8b8ce84524f856e80
  Author: zhongyunde 00443407 <zhongyunde at huawei.com>
  Date:   2024-08-15 (Thu, 15 Aug 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.h
    M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
    M llvm/test/CodeGen/AArch64/arm64-addrmode.ll
    M llvm/test/CodeGen/AArch64/large-offset-ldr-merge.mir

  Log Message:
  -----------
  [AArch64] merge index address with large offset into base address

A case for this transformation, https://gcc.godbolt.org/z/nhYcWq1WE
Fold
  mov     w8, #56952
  movk    w8, #15, lsl #16
  ldrb    w0, [x0, x8]
into
  add     x0, x0, 1036288
  ldrb    w0, [x0, 3704]

Only LDRBBroX is supported for the first time.
Fix https://github.com/llvm/llvm-project/issues/71917

Note: This PR is try relanding the commit 32878c2065 with fix crash for PR79756
  this crash is exposes when there is MOVKWi instruction in the head of a block,
but without MOVZWi


  Commit: 43ffe2eed0d9f73789dbe213023733d164999306
      https://github.com/llvm/llvm-project/commit/43ffe2eed0d9f73789dbe213023733d164999306
  Author: zhongyunde 00443407 <zhongyunde at huawei.com>
  Date:   2024-08-15 (Thu, 15 Aug 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
    M llvm/test/CodeGen/AArch64/arm64-addrmode.ll

  Log Message:
  -----------
  [AArch64] Fold more load.x into load.i with large offset

The list of load.x is refer to canFoldIntoAddrMode on D152828.
Also support LDRSroX missed in canFoldIntoAddrMode


Compare: https://github.com/llvm/llvm-project/compare/36231a5b5525...43ffe2eed0d9

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