[all-commits] [llvm/llvm-project] dedf2c: [AArch64] Refactor allocation of locals and stack ...

Momchil Velikov via All-commits all-commits at lists.llvm.org
Wed Nov 15 01:27:14 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: dedf2c6bb5193652f6ad7d9ff9e676624c2485b7
      https://github.com/llvm/llvm-project/commit/dedf2c6bb5193652f6ad7d9ff9e676624c2485b7
  Author: Momchil Velikov <momchil.velikov at arm.com>
  Date:   2023-11-15 (Wed, 15 Nov 2023)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.h
    M llvm/test/CodeGen/AArch64/framelayout-sve-basepointer.mir
    M llvm/test/CodeGen/AArch64/framelayout-sve-fixed-width-access.mir
    M llvm/test/CodeGen/AArch64/framelayout-sve-scavengingslot.mir
    M llvm/test/CodeGen/AArch64/framelayout-sve.mir
    M llvm/test/CodeGen/AArch64/sme-streaming-mode-changing-call-disable-stackslot-scavenging.ll
    M llvm/test/CodeGen/AArch64/spill-stack-realignment.mir
    M llvm/test/CodeGen/AArch64/stack-guard-sve.ll
    M llvm/test/CodeGen/AArch64/sve-calling-convention-mixed.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-fp128.ll

  Log Message:
  -----------
  [AArch64] Refactor allocation of locals and stack realignment (#72028)

Factor out some stack allocation in a separate function. This patch
splits out the generic portion of a larger refactoring done as a part of
stack clash protection support.

The patch is almost, but not quite NFC. The only difference should
be that where we have adjacent allocation of stack space
for local SVE objects and non-local SVE objects the order
of `sub sp, ...` and `addvl sp, ...` instructions is reversed, because now
it's done with a single call to `emitFrameOffset` and it happens
add/subtract the fixed part before the scalable part, e.g.

    addvl sp, sp, #-2
    sub sp, sp, #16, lsl #12
    sub sp, sp, #16

becomes

    sub sp, sp, #16, lsl #12
    sub sp, sp, #16
    addvl sp, sp, #-2




More information about the All-commits mailing list