[all-commits] [llvm/llvm-project] e1e260: [AArch64][SME] Disable GlobalISel/FastISel for SME...

sdesmalen-arm via All-commits all-commits at lists.llvm.org
Wed Nov 9 08:11:23 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e1e260cc64bd900d5f3f88187c60cb02d3a805f5
      https://github.com/llvm/llvm-project/commit/e1e260cc64bd900d5f3f88187c60cb02d3a805f5
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2022-11-09 (Wed, 09 Nov 2022)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FastISel.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
    A llvm/test/CodeGen/AArch64/sme-disable-gisel-fisel.ll

  Log Message:
  -----------
  [AArch64][SME] Disable GlobalISel/FastISel for SME functions.

This patch ensures that GlobalISel and FastISel fall back to regular DAG ISel when:
* A function requires streaming-mode to be enabled at the start/end of the function.
  This happens when the function has no streaming interface, but does have a streaming body.
* A function requires a lazy-save to be committed at the start of the function.
  This happens if the function has the `aarch64_pstate_za_new` attribute.
* A call to a function requires a change in streaming-mode.
* A call to a function requires a lazy-save buffer to be set up.

Patch by @CarolineConcatto

Reviewed By: david-arm

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




More information about the All-commits mailing list