summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2020-01-04 16:58:11 -0800
committerFangrui Song <maskray@google.com>2020-01-10 09:57:39 -0800
commitf17ae668a96eeb69f0664f126cf672e1a05754d2 (patch)
tree6d63004713914e91e9f07fecec32233cac4be725 /clang/test/CodeGen
parenta44c434b68e515ce9f2627367c83ff6b22328261 (diff)
downloadbcm5719-llvm-f17ae668a96eeb69f0664f126cf672e1a05754d2.tar.gz
bcm5719-llvm-f17ae668a96eeb69f0664f126cf672e1a05754d2.zip
[Driver][CodeGen] Add -fpatchable-function-entry=N[,0]
In the backend, this feature is implemented with the function attribute "patchable-function-entry". Both the attribute and XRay use TargetOpcode::PATCHABLE_FUNCTION_ENTER, so the two features are incompatible. Reviewed By: ostannard, MaskRay Differential Revision: https://reviews.llvm.org/D72222
Diffstat (limited to 'clang/test/CodeGen')
-rw-r--r--clang/test/CodeGen/patchable-function-entry.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/test/CodeGen/patchable-function-entry.c b/clang/test/CodeGen/patchable-function-entry.c
index 678d90ff78f..50b96ea883a 100644
--- a/clang/test/CodeGen/patchable-function-entry.c
+++ b/clang/test/CodeGen/patchable-function-entry.c
@@ -1,4 +1,5 @@
// RUN: %clang_cc1 -triple aarch64 -emit-llvm %s -o - | FileCheck %s
+// RUN: %clang_cc1 -triple x86_64 -emit-llvm %s -fpatchable-function-entry=1 -o - | FileCheck --check-prefixes=CHECK,OPT %s
// CHECK: define void @f0() #0
__attribute__((patchable_function_entry(0))) void f0() {}
@@ -16,6 +17,10 @@ __attribute__((patchable_function_entry(2, 0))) void f20() {}
__attribute__((patchable_function_entry(2, 0))) void f20decl();
void f20decl() {}
+// OPT: define void @f() #2
+void f() {}
+
/// M in patchable_function_entry(N,M) is currently ignored.
// CHECK: attributes #0 = { {{.*}} "patchable-function-entry"="0"
// CHECK: attributes #1 = { {{.*}} "patchable-function-entry"="2"
+// OPT: attributes #2 = { {{.*}} "patchable-function-entry"="1"
OpenPOWER on IntegriCloud