[all-commits] [llvm/llvm-project] e9d9a6: Reapply D70800: Fix AArch64 AAPCS frame record chain

Owen Anderson via All-commits all-commits at lists.llvm.org
Thu Aug 27 10:30:27 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e9d9a612084b47fc4277523561d61e675370c854
      https://github.com/llvm/llvm-project/commit/e9d9a612084b47fc4277523561d61e675370c854
  Author: Owen Anderson <resistor at mac.com>
  Date:   2020-08-27 (Thu, 27 Aug 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
    A llvm/test/CodeGen/AArch64/framelayout-fp-csr.ll
    A llvm/test/CodeGen/AArch64/framelayout-frame-record.mir
    A llvm/test/CodeGen/AArch64/framelayout-unaligned-fp.ll

  Log Message:
  -----------
  Reapply D70800: Fix AArch64 AAPCS frame record chain

Original Commit Message:
After the commit r368987 (rG643adb55769e) was landed, the frame record (FP and LR register)
may be placed in the middle of a stack frame if a function has both callee-saved
general-purpose registers and floating point registers. This will break the stack unwinders
that simply walk through the frame records (based on the guarantee from AAPCS64
"The Frame Pointer" section). This commit fixes the problem by adding the frame record offset.

Patch By: logan
Differential Revision: D70800




More information about the All-commits mailing list