summaryrefslogtreecommitdiffstats
path: root/compiler-rt/include/xray
diff options
context:
space:
mode:
authorDean Michael Berris <dberris@google.com>2016-11-21 03:20:43 +0000
committerDean Michael Berris <dberris@google.com>2016-11-21 03:20:43 +0000
commitbad8f0feb47dbd648ebee5208ae5d966ed22ad50 (patch)
tree4eb41ac4e4480bf67bec07f1fe0a6b4029cb5b9f /compiler-rt/include/xray
parent31761f300d8237bca7320e17461a3a7df49aee69 (diff)
downloadbcm5719-llvm-bad8f0feb47dbd648ebee5208ae5d966ed22ad50.tar.gz
bcm5719-llvm-bad8f0feb47dbd648ebee5208ae5d966ed22ad50.zip
[XRay] Support AArch64 in compiler-rt
This patch adds XRay support in compiler-rt for AArch64 targets. This patch is one of a series: LLVM: https://reviews.llvm.org/D26412 Clang: https://reviews.llvm.org/D26415 Author: rSerge Reviewers: rengolin, dberris Subscribers: aemerson, mgorny, llvm-commits, iid_iunknown Differential Revision: https://reviews.llvm.org/D26413 llvm-svn: 287517
Diffstat (limited to 'compiler-rt/include/xray')
-rw-r--r--compiler-rt/include/xray/xray_interface.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler-rt/include/xray/xray_interface.h b/compiler-rt/include/xray/xray_interface.h
index 680fcfdd523..9e712b1fa2a 100644
--- a/compiler-rt/include/xray/xray_interface.h
+++ b/compiler-rt/include/xray/xray_interface.h
@@ -32,6 +32,13 @@ enum XRayEntryType { ENTRY = 0, EXIT = 1, TAIL = 2 };
// (function entry, function exit, etc.). See the enum
// XRayEntryType for more details.
//
+// The user handler must handle correctly spurious calls after this handler is
+// removed or replaced with another handler, because it would be too costly for
+// XRay runtime to avoid spurious calls.
+// To prevent circular calling, the handler function itself and all its
+// direct&indirect callees must not be instrumented with XRay, which can be
+// achieved by marking them all with: __attribute__((xray_never_instrument))
+//
// Returns 1 on success, 0 on error.
extern int __xray_set_handler(void (*entry)(int32_t, XRayEntryType));
OpenPOWER on IntegriCloud