Skip to content

Commit

Permalink
[XRay] Make llvm.xray.customevent parameter type match __xray_custome…
Browse files Browse the repository at this point in the history
…vent

The intrinsic has a smaller integer type than the parameter type of
builtin-function/API. Fix this similar to commit 3fa3cb4.
  • Loading branch information
MaskRay committed Jun 20, 2023
1 parent 3fa3cb4 commit dafaa84
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 13 deletions.
2 changes: 1 addition & 1 deletion clang/test/CodeGen/xray-always-emit-customevent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
[[clang::xray_never_instrument]] void neverInstrument() {
static constexpr char kPhase[] = "never";
__xray_customevent(kPhase, 5);
// CHECK: call void @llvm.xray.customevent(ptr{{.*}}, i32 5)
// CHECK: call void @llvm.xray.customevent(ptr{{.*}}, i64 5)
}
8 changes: 4 additions & 4 deletions clang/test/CodeGen/xray-customevent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
[[clang::xray_always_instrument]] void alwaysInstrument() {
static constexpr char kPhase[] = "instrument";
__xray_customevent(kPhase, 10);
// CHECK: call void @llvm.xray.customevent(ptr{{.*}}, i32 10)
// CHECK: call void @llvm.xray.customevent(ptr{{.*}}, i64 10)
}

// CHECK-LABEL: @_Z15neverInstrumentv
[[clang::xray_never_instrument]] void neverInstrument() {
static constexpr char kPhase[] = "never";
__xray_customevent(kPhase, 5);
// CHECK-NOT: call void @llvm.xray.customevent(ptr{{.*}}, i32 5)
// CHECK-NOT: call void @llvm.xray.customevent(
}

// CHECK-LABEL: @_Z21conditionalInstrumenti
Expand All @@ -23,6 +23,6 @@
else
__xray_customevent(kUntrue, 6);

// CHECK: call void @llvm.xray.customevent(ptr{{.*}}, i32 4)
// CHECK: call void @llvm.xray.customevent(ptr{{.*}}, i32 6)
// CHECK: call void @llvm.xray.customevent(ptr{{.*}}, i64 4)
// CHECK: call void @llvm.xray.customevent(ptr{{.*}}, i64 6)
}
4 changes: 2 additions & 2 deletions clang/test/CodeGen/xray-instrumentation-bundles.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@
static constexpr char kPhase[] = "always";
__xray_customevent(kPhase, 6);
__xray_typedevent(1, kPhase, 6);
// CUSTOM: call void @llvm.xray.customevent(ptr{{.*}}, i32 6)
// NOCUSTOM-NOT: call void @llvm.xray.customevent(ptr{{.*}}, i32 6)
// CUSTOM: call void @llvm.xray.customevent(ptr {{.*}}, i64 6)
// NOCUSTOM-NOT: call void @llvm.xray.customevent(
// TYPED: call void @llvm.xray.typedevent(i64 {{.*}}, ptr{{.*}}, i64 6)
// NOTYPED-NOT: call void @llvm.xray.typedevent(
}
Expand Down
2 changes: 1 addition & 1 deletion llvm/include/llvm/IR/Intrinsics.td
Original file line number Diff line number Diff line change
Expand Up @@ -2253,7 +2253,7 @@ def int_hwasan_check_memaccess_shortgranules :
//===----------------------------------------------------------------------===//
// Custom event logging for x-ray.
// Takes a pointer to a string and the length of the string.
def int_xray_customevent : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty],
def int_xray_customevent : Intrinsic<[], [llvm_ptr_ty, llvm_i64_ty],
[IntrWriteMem, NoCapture<ArgIndex<0>>,
ReadOnly<ArgIndex<0>>]>;
// Typed event logging for x-ray.
Expand Down
10 changes: 5 additions & 5 deletions llvm/test/CodeGen/X86/xray-custom-log.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

define i32 @customevent() nounwind "function-instrument"="xray-always" !dbg !1 {
%eventptr = alloca i8
%eventsize = alloca i32
store i32 3, ptr %eventsize
%val = load i32, ptr %eventsize
call void @llvm.xray.customevent(ptr %eventptr, i32 %val), !dbg !8
%eventsize = alloca i64
store i64 3, ptr %eventsize
%val = load i64, ptr %eventsize
call void @llvm.xray.customevent(ptr %eventptr, i64 %val), !dbg !8
; CHECK-LABEL: Lxray_event_sled_0:
; CHECK: .byte 0xeb, 0x0f
; CHECK-NEXT: pushq %rdi
Expand Down Expand Up @@ -75,7 +75,7 @@ define i32 @typedevent() nounwind "function-instrument"="xray-always" !dbg !2 {
; CHECK-LABEL: Lxray_sleds_start1:
; CHECK: .quad {{.*}}xray_typed_event_sled_0

declare void @llvm.xray.customevent(ptr, i32)
declare void @llvm.xray.customevent(ptr, i64)
declare void @llvm.xray.typedevent(i64, ptr, i64)

;; Construct call site entries for PATCHABLE_EVENT_CALL.
Expand Down

0 comments on commit dafaa84

Please sign in to comment.