[all-commits] [llvm/llvm-project] acd258: [MachineOutliner][AArch64] Save + restore LR in no...
Jessica Paquette via All-commits
all-commits at lists.llvm.org
Tue Jan 7 11:27:36 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: acd258082477b8a4edf3037127efb5fed4494da3
https://github.com/llvm/llvm-project/commit/acd258082477b8a4edf3037127efb5fed4494da3
Author: Jessica Paquette <jpaquette at apple.com>
Date: 2020-01-07 (Tue, 07 Jan 2020)
Changed paths:
M llvm/lib/CodeGen/MachineOutliner.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
A llvm/test/CodeGen/AArch64/machine-outliner-noreturn-save-lr.mir
R llvm/test/CodeGen/AArch64/machine-outliner-noreturn.mir
Log Message:
-----------
[MachineOutliner][AArch64] Save + restore LR in noreturn functions
Conservatively always save + restore LR in noreturn functions.
These functions do not end in a RET, and so they aren't guaranteed to have an
instruction which uses LR in any way. So, as a result, you can end up in
unfortunate situations where you can't backtrace out of these functions in a
debugger.
Remove the old noreturn test, and add a new one which is more descriptive.
Remove the restriction that we can't outline from noreturn functions as well
since we now do the right thing.
More information about the All-commits
mailing list