[all-commits] [llvm/llvm-project] 0c0f76: [ARM] Fix llvm.returnaddress for Thumb1 with R11 f...
Oliver Stannard via All-commits
all-commits at lists.llvm.org
Thu Nov 28 01:38:19 PST 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 0c0f765cab4b16eb0342d514584cdf64cabc433a
https://github.com/llvm/llvm-project/commit/0c0f765cab4b16eb0342d514584cdf64cabc433a
Author: Oliver Stannard <oliver.stannard at arm.com>
Date: 2024-11-28 (Thu, 28 Nov 2024)
Changed paths:
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
M llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
M llvm/test/CodeGen/Thumb/frame-chain.ll
A llvm/test/CodeGen/Thumb/returnaddress.ll
Log Message:
-----------
[ARM] Fix llvm.returnaddress for Thumb1 with R11 frame-pointer (#117735)
When the llvm.returnaddress intrinsic is used, the LR is marked as
live-in to the function, so it must be preserved through the prologue.
This is normally fine, but there is one case for Thumb1 where we use LR
as a temporary in the prologue to set up a frame chain using r11 as the
frame pointer. There are no other registers guaranteed to be free to do
this, so we have to re-load LR from the stack after pushing the callee
saved registers.
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