[PATCH] D65653: [AArch64] Change location of frame-record within callee-save area.

Sander de Smalen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 29 05:16:00 PDT 2019


sdesmalen added a comment.

In D65653#1645767 <https://reviews.llvm.org/D65653#1645767>, @omjavaid wrote:

> This rev breaks LLDB for AArch64. functionalities/thread/concurrent_events/* tests are failing after r368987.


Thanks for bringing this to my attention @omjavaid  and sorry about breaking these tests! Tbh, I was not aware anything was broken, because I normally get spammed by buildbot when something breaks. Is that functionality not working at the moment?

> The problem appears to be coming out of signal handling where linux might be assuming stack with previous layout of FP and LR pair.

It appears this patch exposes an existing issue that the callee-save stack size is calculated twice (with different results). This leads to incorrect debug information for locals.
I've addressed this in D66935 <https://reviews.llvm.org/D66935>!

> Although AArch64 AAPCS does allow FP/LR to be implementation specific but this change might be breaking implementations which have adapted to previous layout.

I double checked with some folks who have experience working on the Linux kernel (AArch64), who told me that neither Linux nor userspace signal handlers should care about the precise frame layout used by the compiler. They see no obvious reasons why the proposed change to the frame layout would break anything.


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65653/new/

https://reviews.llvm.org/D65653





More information about the llvm-commits mailing list