[all-commits] [llvm/llvm-project] 488821: [ARM] Do not emit unwind tables when saving LR aro...
ostannard via All-commits
all-commits at lists.llvm.org
Thu Dec 14 06:46:26 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 4888218d0312f9126d8dd657d2ed568bf0572e9a
https://github.com/llvm/llvm-project/commit/4888218d0312f9126d8dd657d2ed568bf0572e9a
Author: ostannard <oliver.stannard at arm.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
M llvm/lib/Target/ARM/ARMMachineFunctionInfo.cpp
M llvm/lib/Target/ARM/ARMMachineFunctionInfo.h
M llvm/lib/Target/ARM/ARMTargetMachine.cpp
M llvm/lib/Target/ARM/ARMTargetMachine.h
A llvm/test/CodeGen/ARM/machine-outliner-noreturn.mir
Log Message:
-----------
[ARM] Do not emit unwind tables when saving LR around outlined call (#69611)
In some cases, the machine outliner needs to preserve LR across an
outlined call by pushing it onto the stack. Previously, this also
generated unwind table instructions, which is incorrect because EHABI
unwind tables cannot represent different stack frames a different points
in the function, so the extra unwind info applied to the entire
function.
The outliner code already avoided generating CFI instructions, but EHABI
unwind data is generated later from the actual instructions, so we need
to avoid using the FrameSetup and FrameDestroy flags to prevent unwind
data being generated.
More information about the All-commits
mailing list