[all-commits] [llvm/llvm-project] d4e10e: AArch64: Fix frame record chain
Logan Chien via All-commits
all-commits at lists.llvm.org
Sat Dec 14 10:38:06 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: d4e10e6adb1b629b3fc1b78f7e281fbcec392edb
https://github.com/llvm/llvm-project/commit/d4e10e6adb1b629b3fc1b78f7e281fbcec392edb
Author: Logan Chien <tzuhsiang.chien at gmail.com>
Date: 2019-12-14 (Sat, 14 Dec 2019)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
A llvm/test/CodeGen/AArch64/framelayout-frame-record.mir
Log Message:
-----------
AArch64: Fix frame record chain
The commit r369122 may keep LR and FP register (aka. frame record) in
the middle of a frame, thus we must add the offsets to ensure the FP
register always points to innermost frame record on the stack.
According to AAPCS64[1], a conforming code shall construct a linked list
of stack frames that can be traversed with frame records. This commit
is also essential to frame-pointer-based stack unwinder (e.g. the stack
unwinder in linx-perf-tools.)
[1] https://github.com/ARM-software/software-standards/blob/master/abi/aapcs64/aapcs64.rst#the-frame-pointer
Test: llvm-lit ${LLVM_SRC}/test/CodeGen/AArch64/framelayout-frame-record.ll
Test: llvm-lit ${LLVM_SRC}/test/CodeGen/AArch64
Differential Revision: https://reviews.llvm.org/D70800
More information about the All-commits
mailing list