aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorDavid Tellenbach <david.tellenbach@me.com>2019-12-03 17:37:56 +0100
committerDavid Tellenbach <david.tellenbach@me.com>2019-12-04 19:39:52 +0100
commit02760b750b2ffcc0e2f5d78ecb137c80930c42c3 (patch)
tree6f6538c930a962c9647f95183d3364cba6956ad8 /clang/lib/Frontend/CompilerInvocation.cpp
parentf208b70fbc4dee78067b3c5bd6cb92aa3ba58a1e (diff)
downloadllvm-02760b750b2ffcc0e2f5d78ecb137c80930c42c3.zip
llvm-02760b750b2ffcc0e2f5d78ecb137c80930c42c3.tar.gz
llvm-02760b750b2ffcc0e2f5d78ecb137c80930c42c3.tar.bz2
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
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions