[all-commits] [llvm/llvm-project] 1762b3: [win][aarch64] Always reserve frame pointers for A...

Daniel Paoliello via All-commits all-commits at lists.llvm.org
Tue Jul 8 12:18:34 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1762b3043c5ec58cfb2be8911535c3cd4d1f64b0
      https://github.com/llvm/llvm-project/commit/1762b3043c5ec58cfb2be8911535c3cd4d1f64b0
  Author: Daniel Paoliello <danpao at microsoft.com>
  Date:   2025-07-08 (Tue, 08 Jul 2025)

  Changed paths:
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/test/Driver/frame-pointer-elim.c
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.h
    M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
    M llvm/test/CodeGen/AArch64/regress-w29-reserved-with-fp.ll
    M llvm/test/CodeGen/AArch64/win-sve.ll
    M llvm/test/CodeGen/AArch64/wincfi-missing-seh-directives.ll
    M llvm/test/CodeGen/AArch64/wineh-frame5.mir
    M llvm/test/CodeGen/AArch64/wineh-frame7.mir

  Log Message:
  -----------
  [win][aarch64] Always reserve frame pointers for Arm64 Windows, take 2 (#147354)

Re-land #146582 now that the Flang bugs have been fixed.

There is no way in Arm64 Windows to indicate that a given function has
used the Frame Pointer as a General Purpose Register, as such stack
walks will always assume that the frame chain is valid and will follow
whatever value has been saved for the Frame Pointer (even if it is
pointing to data, etc.).

This change makes the Frame Pointer always reserved when building for
Arm64 Windows to avoid this issue.

We will be updating the official Windows ABI documentation to reflect
this requirement, and I will provide a link once it's available.



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