[all-commits] [llvm/llvm-project] e3f4f8: [AArch64] Fix crash when neither Neon nor SVE are ...

paulwalker-arm via All-commits all-commits at lists.llvm.org
Fri Aug 18 00:53:21 PDT 2023


  Branch: refs/heads/release/17.x
  Home:   https://github.com/llvm/llvm-project
  Commit: e3f4f8c1be4d98ff815e75aa6b84833b12febec9
      https://github.com/llvm/llvm-project/commit/e3f4f8c1be4d98ff815e75aa6b84833b12febec9
  Author: Fraser Cormack <frasercrmck at gmail.com>
  Date:   2023-08-18 (Fri, 18 Aug 2023)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    A llvm/test/Analysis/CostModel/AArch64/no-sve-no-neon.ll
    A llvm/test/CodeGen/AArch64/no-sve-no-neon.ll

  Log Message:
  -----------
  [AArch64] Fix crash when neither Neon nor SVE are enabled

The subtarget was unconditionally reporting that SVE was to be used to
lower vectors when Neon was unavailable, even when SVE itself was
unavailable. This decision leads other parts of the compiler to crash,
e.g., when querying SVE vector sizes.

Reviewed By: sdesmalen

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

(cherry picked from commit c058eb998aa6fa89d412984d6cbf9e3f826249f3)


  Commit: 0f6af71af271cdde3faab835fe59c8fcf4ae0807
      https://github.com/llvm/llvm-project/commit/0f6af71af271cdde3faab835fe59c8fcf4ae0807
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2023-08-18 (Fri, 18 Aug 2023)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/alloca-load-store-scalable-struct.ll

  Log Message:
  -----------
  [SVE] Add test to show incorrect code generation for scalable vector struct loads and stores.

Patch also includes a minor fix to AArch64::isLegalAddressingMode
to ensure all scalable types have a suitable bailout.


  Commit: 2ad55edf7181e96e4caa12add7949f7b1f98ee1c
      https://github.com/llvm/llvm-project/commit/2ad55edf7181e96e4caa12add7949f7b1f98ee1c
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2023-08-18 (Fri, 18 Aug 2023)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  Log Message:
  -----------
  [NFC][SelectionDAGBuilder] Use getObjectPtrOffset in place of discrete nodes.

Some prep work to make aggregate loads and stores TypeSize aware.


  Commit: 242fe2d8d86e643e70443292751a08c456862198
      https://github.com/llvm/llvm-project/commit/242fe2d8d86e643e70443292751a08c456862198
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2023-08-18 (Fri, 18 Aug 2023)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/test/CodeGen/AArch64/alloca-load-store-scalable-struct.ll
    M llvm/test/CodeGen/AArch64/sve-extract-fixed-vector.ll
    M llvm/test/CodeGen/RISCV/rvv/alloca-load-store-scalable-struct.ll

  Log Message:
  -----------
  [SelectionDAG] Use TypeSize variant of ComputeValueVTs to compute correct offsets for scalable aggregate types.

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


Compare: https://github.com/llvm/llvm-project/compare/847c5b81ec1f...242fe2d8d86e


More information about the All-commits mailing list