[all-commits] [llvm/llvm-project] 702c3f: [SME] Don't scavenge a spillslot in callee-save ar...

sdesmalen-arm via All-commits all-commits at lists.llvm.org
Mon Sep 4 03:15:23 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 702c3f56d3868831f9aff104b53d6bde0ed2e5f1
      https://github.com/llvm/llvm-project/commit/702c3f56d3868831f9aff104b53d6bde0ed2e5f1
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2023-09-04 (Mon, 04 Sep 2023)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/test/CodeGen/AArch64/sme-disable-gisel-fisel.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-body.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-interface.ll
    A llvm/test/CodeGen/AArch64/sme-streaming-mode-changing-call-disable-stackslot-scavenging.ll

  Log Message:
  -----------
  [SME] Don't scavenge a spillslot in callee-save area in presence of streaming-mode changes.

If no frame-pointer is available and the compiler has scavenged a
spill-slot in the callee-save area, the compiler may be forced to emit an
'addvl' inside the streaming-mode-changing call sequence when it needs to
fill (reload) an FP register being passed to the call.

We can avoid this entirely by disabling stack-slot scavenging when there
are streaming-mode-changing call-sequences in the function.

Reviewed By: david-arm

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




More information about the All-commits mailing list