[all-commits] [llvm/llvm-project] df0cc1: Reland [AArch64][MachineOutliner] Return address s...
David Tellenbach via All-commits
all-commits at lists.llvm.org
Mon Dec 16 05:44:13 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: df0cc105fa7f04b9e79ac76759d3482c4989e969
https://github.com/llvm/llvm-project/commit/df0cc105fa7f04b9e79ac76759d3482c4989e969
Author: David Tellenbach <david.tellenbach at me.com>
Date: 2019-12-16 (Mon, 16 Dec 2019)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-diff-scope-same-key.ll
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-non-leaf.ll
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-regsave.mir
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-same-scope-diff-key.ll
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-same-scope-same-key-a.ll
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-same-scope-same-key-b.ll
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-sp-mod.ll
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-sp-mod.mir
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-subtarget.ll
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-thunk.ll
A llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-v8-3.ll
Log Message:
-----------
Reland [AArch64][MachineOutliner] Return address signing for outlined functions
Summary:
Reland after fixing a bug that allowed outlining of SP modifying instructions
that invalidated return address signing.
During AArch64 frame lowering instructions to enable return address
signing are inserted into functions if needed. Functions generated during
machine outlining don't run through target frame lowering and hence are
missing such instructions.
This patch introduces the following changes:
1. If not all functions that potentially participate in function outlining agree
on their return address signing scope and their return address signing key,
outlining is disabled for these functions.
2. If not all functions that potentially participate in function outlining agree
on their support for v8.3A features, outlining is disabled for these
functions.
3. If an outlining candidate would outline instructions that modify sp in a way
that invalidates return address signing, outlining is disabled for that
particular candidate.
4. If all candidate functions agree on the signing scope, signing key and their
support for v8.3 features, the outlined function behaves as if it had the
same scope and key attributes and as if it would provide the same v8.3A
support as the original functions.
Reviewers: ostannard, paquette
Reviewed By: ostannard
Subscribers: kristof.beyls, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70635
More information about the All-commits
mailing list