[all-commits] [llvm/llvm-project] c3d9f3: [AArch64][SVE] Avoid using the SVE stack size befo...

Benjamin Maxwell via All-commits all-commits at lists.llvm.org
Wed Jul 9 02:55:55 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c3d9f31b11eb3db5591e21cb9d6def98d39c1cb1
      https://github.com/llvm/llvm-project/commit/c3d9f31b11eb3db5591e21cb9d6def98d39c1cb1
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2025-07-09 (Wed, 09 Jul 2025)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp
    M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
    M llvm/test/DebugInfo/AArch64/asan-stack-vars.mir
    M llvm/test/DebugInfo/AArch64/compiler-gen-bbs-livedebugvalues.mir

  Log Message:
  -----------
  [AArch64][SVE] Avoid using the SVE stack size before it is determined (#147561)

This patch adds asserts to `getStackSizeSVE()` and
`getSVECalleeSavedStackSize()` to check they are only called after the
SVE stack size has been determined.

This patch then fixes issues in three places:

* `AArch64FrameLowering::homogeneousPrologEpilog()`
  - This function is called before callee saves or SVE stack sizes have
    been determined
  - This check has been updated to use `isLikelyToHaveSVEStack()` 
  - `isLikelyToHaveSVEStack()` conservatively returns if a function is
likely to have an SVE stack
* `produceCompactUnwindFrame()`
  - This function checked the SVE CS stack size before callee-saves had
    been determined
  - This has been replaced with a more conservative `isSVECC()` check
* `AArch64FrameLowering::resolveFrameOffsetReference()`
  - This was hit by some post-PEI MIR tests
  - This case was fixed by adding "stackSizeSVE" to the YAML for
    `AArch64FunctionInfo`



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