aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/SafeStack.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2020-12-11 19:37:14 +0000
committerFlorian Hahn <flo@fhahn.com>2020-12-11 19:45:44 +0000
commita87fccb3ff9c11986d3110d9f77fb0ccea0daf79 (patch)
tree61f5c19ba6060e91171d2b8bf6279cac8313d50a /llvm/lib/CodeGen/SafeStack.cpp
parent32910f780df4f5add290f176459648f2326674f5 (diff)
downloadllvm-a87fccb3ff9c11986d3110d9f77fb0ccea0daf79.zip
llvm-a87fccb3ff9c11986d3110d9f77fb0ccea0daf79.tar.gz
llvm-a87fccb3ff9c11986d3110d9f77fb0ccea0daf79.tar.bz2
[AArch64] Lower calls with rv_marker attribute .
This patch adds support for lowering function calls with the rv_marker attribute. The goal is to expand such calls to the following sequence of instructions: BL @fn mov x29, x29 This sequence of instructions triggers Objective-C runtime optimizations, hence we want to ensure no instructions get moved in between them. This patch achieves that by adding a new CALL_RVMARKER ISD node, which gets turned into the BLR_RVMARKER pseudo, which eventually gets expanded into the sequence mentioned above. The sequence is then marked as instruction bundle, to avoid anything being moved in between. @ahatanak is working on using this attribute in the front- & middle-end. Together with the front- & middle-end changes, this should address PR31925 for AArch64. Reviewed By: t.p.northover Differential Revision: https://reviews.llvm.org/D92569
Diffstat (limited to 'llvm/lib/CodeGen/SafeStack.cpp')
0 files changed, 0 insertions, 0 deletions