From 7c29ef848de951da429abe7438a85c678ea3e6f6 Mon Sep 17 00:00:00 2001 From: Dean Michael Berris Date: Mon, 18 Sep 2017 06:18:03 +0000 Subject: [XRay][compiler-rt] Handle tail-call exits in the XRay runtime Summary: This change starts differentiating tail exits from normal exits. We also increase the version number of the "naive" log to version 2, which will be the starting version where these records start appearing. In FDR mode we treat the tail exits as normal exits, and are thus subject to the same treatment with regard to record unwriting. Updating the version number is important to signal older builds of the llvm-xray tool that do not deal with the tail exit records must fail early (and that users should only use the llvm-xray tool built after the support for tail exits to get accurate handling of these records). Depends on D37964. Reviewers: kpw, pelikan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D37965 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@313515 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/xray/xray_records.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/xray/xray_records.h b/include/xray/xray_records.h index 506755dbd..98e54cb69 100644 --- a/include/xray/xray_records.h +++ b/include/xray/xray_records.h @@ -78,7 +78,10 @@ struct alignas(32) XRayRecord { // The CPU where the thread is running. We assume number of CPUs <= 256. uint8_t CPU = 0; - // The type of the event. Usually either ENTER = 0 or EXIT = 1. + // The type of the event. One of the following: + // ENTER = 0 + // EXIT = 1 + // TAIL_EXIT = 2 uint8_t Type = 0; // The function ID for the record. -- cgit v1.2.3