summaryrefslogtreecommitdiffstats
path: root/compiler-rt/include/xray
diff options
context:
space:
mode:
authorDean Michael Berris <dberris@google.com>2017-05-12 01:07:41 +0000
committerDean Michael Berris <dberris@google.com>2017-05-12 01:07:41 +0000
commit29e16deb177528da8858d9866381cf12e40b406a (patch)
treed5cd3ab80c9420014d607793cf2e450b5cec7f4a /compiler-rt/include/xray
parenta7bbe4481a79772d09553b0e01d3024f1dd96ed8 (diff)
downloadbcm5719-llvm-29e16deb177528da8858d9866381cf12e40b406a.tar.gz
bcm5719-llvm-29e16deb177528da8858d9866381cf12e40b406a.zip
[XRay][compiler-rt] Runtime changes to support custom event logging
Summary: This change implements support for the custom event logging sleds and intrinsics at runtime. For now it only supports handling the sleds in x86_64, with the implementations for other architectures stubbed out to do nothing. NOTE: Work in progress, uploaded for exposition/exploration purposes. Depends on D27503, D30018, and D33032. Reviewers: echristo, javed.absar, timshen Subscribers: mehdi_amini, nemanjai, llvm-commits Differential Revision: https://reviews.llvm.org/D30630 llvm-svn: 302857
Diffstat (limited to 'compiler-rt/include/xray')
-rw-r--r--compiler-rt/include/xray/xray_interface.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler-rt/include/xray/xray_interface.h b/compiler-rt/include/xray/xray_interface.h
index c90025e38aa..aea43517d13 100644
--- a/compiler-rt/include/xray/xray_interface.h
+++ b/compiler-rt/include/xray/xray_interface.h
@@ -25,6 +25,7 @@ enum XRayEntryType {
EXIT = 1,
TAIL = 2,
LOG_ARGS_ENTRY = 3,
+ CUSTOM_EVENT = 4,
};
/// Provide a function to invoke for when instrumentation points are hit. This
@@ -64,6 +65,9 @@ extern int __xray_set_handler_arg1(void (*)(int32_t, XRayEntryType, uint64_t));
/// Returns 1 on success, 0 on error.
extern int __xray_remove_handler_arg1();
+/// Provide a function to invoke when XRay encounters a custom event.
+extern int __xray_set_customevent_handler(void (*entry)(void*, std::size_t));
+
enum XRayPatchingStatus {
NOT_INITIALIZED = 0,
SUCCESS = 1,
OpenPOWER on IntegriCloud