[llvm] d5bbaaa - [XRay] Make __xray_customevent support non-Linux

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 25 00:49:25 PST 2021


Author: Fangrui Song
Date: 2021-01-25T00:48:21-08:00
New Revision: d5bbaaaf957138cb2de9c91320e589934d0ab2f0

URL: https://github.com/llvm/llvm-project/commit/d5bbaaaf957138cb2de9c91320e589934d0ab2f0
DIFF: https://github.com/llvm/llvm-project/commit/d5bbaaaf957138cb2de9c91320e589934d0ab2f0.diff

LOG: [XRay] Make __xray_customevent support non-Linux

Added: 
    

Modified: 
    llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    llvm/test/CodeGen/X86/xray-custom-log.ll

Removed: 
    llvm/test/CodeGen/X86/xray-typed-event-log.ll


################################################################################
diff  --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index b9439a48d4b2..6638ff6a6358 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -6785,7 +6785,7 @@ void SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I,
     // specific calling convention, and only for x86_64.
     // FIXME: Support other platforms later.
     const auto &Triple = DAG.getTarget().getTargetTriple();
-    if (Triple.getArch() != Triple::x86_64 || !Triple.isOSLinux())
+    if (Triple.getArch() != Triple::x86_64)
       return;
 
     SDLoc DL = getCurSDLoc();
@@ -6816,7 +6816,7 @@ void SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I,
     // specific calling convention, and only for x86_64.
     // FIXME: Support other platforms later.
     const auto &Triple = DAG.getTarget().getTargetTriple();
-    if (Triple.getArch() != Triple::x86_64 || !Triple.isOSLinux())
+    if (Triple.getArch() != Triple::x86_64)
       return;
 
     SDLoc DL = getCurSDLoc();

diff  --git a/llvm/test/CodeGen/X86/xray-custom-log.ll b/llvm/test/CodeGen/X86/xray-custom-log.ll
index f53e6c676c3b..ee293112249b 100644
--- a/llvm/test/CodeGen/X86/xray-custom-log.ll
+++ b/llvm/test/CodeGen/X86/xray-custom-log.ll
@@ -1,8 +1,7 @@
-; RUN: llc -verify-machineinstrs -debug-entry-values -filetype=asm -o - -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s
-; RUN: llc -verify-machineinstrs -debug-entry-values -filetype=asm -o - \
-; RUN:     -mtriple=x86_64-unknown-linux-gnu -relocation-model=pic < %s | FileCheck %s -check-prefix=PIC
+; RUN: llc -verify-machineinstrs -mtriple=x86_64 < %s | FileCheck %s
+; RUN: llc -verify-machineinstrs -mtriple=x86_64 -relocation-model=pic < %s | FileCheck %s --check-prefix=PIC
 
-define i32 @fn() nounwind noinline uwtable "function-instrument"="xray-always" {
+define i32 @customevent() nounwind "function-instrument"="xray-always" {
     %eventptr = alloca i8
     %eventsize = alloca i32
     store i32 3, i32* %eventsize
@@ -33,4 +32,45 @@ define i32 @fn() nounwind noinline uwtable "function-instrument"="xray-always" {
 ; CHECK-LABEL: Lxray_sleds_start0:
 ; CHECK:       .quad {{.*}}xray_event_sled_0
 
+define i32 @typedevent() nounwind "function-instrument"="xray-always" {
+    %eventptr = alloca i8
+    %eventsize = alloca i32
+    %eventtype = alloca i16
+    store i16 6, i16* %eventtype
+    %type = load i16, i16* %eventtype
+    store i32 3, i32* %eventsize
+    %val = load i32, i32* %eventsize
+    call void @llvm.xray.typedevent(i16 %type, i8* %eventptr, i32 %val)
+    ; CHECK-LABEL: Lxray_typed_event_sled_0:
+    ; CHECK:       .byte 0xeb, 0x14
+    ; CHECK-NEXT:  pushq %rdi
+    ; CHECK-NEXT:  pushq %rsi
+    ; CHECK-NEXT:  pushq %rdx
+    ; CHECK-NEXT:  movq %rdx, %rdi
+    ; CHECK-NEXT:  movq %rcx, %rsi
+    ; CHECK-NEXT:  movq %rax, %rdx
+    ; CHECK-NEXT:  callq __xray_TypedEvent
+    ; CHECK-NEXT:  popq %rdx
+    ; CHECK-NEXT:  popq %rsi
+    ; CHECK-NEXT:  popq %rdi
+
+    ; PIC-LABEL: Lxray_typed_event_sled_0:
+    ; PIC:       .byte 0xeb, 0x14
+    ; PIC-NEXT:  pushq %rdi
+    ; PIC-NEXT:  pushq %rsi
+    ; PIC-NEXT:  pushq %rdx
+    ; PIC-NEXT:  movq %rdx, %rdi
+    ; PIC-NEXT:  movq %rcx, %rsi
+    ; PIC-NEXT:  movq %rax, %rdx
+    ; PIC-NEXT:  callq __xray_TypedEvent at PLT
+    ; PIC-NEXT:  popq %rdx
+    ; PIC-NEXT:  popq %rsi
+    ; PIC-NEXT:  popq %rdi
+    ret i32 0
+}
+; CHECK-LABEL: xray_instr_map
+; CHECK-LABEL: Lxray_sleds_start1:
+; CHECK:       .quad {{.*}}xray_typed_event_sled_0
+
 declare void @llvm.xray.customevent(i8*, i32)
+declare void @llvm.xray.typedevent(i16, i8*, i32)

diff  --git a/llvm/test/CodeGen/X86/xray-typed-event-log.ll b/llvm/test/CodeGen/X86/xray-typed-event-log.ll
deleted file mode 100644
index aa7e19947f95..000000000000
--- a/llvm/test/CodeGen/X86/xray-typed-event-log.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: llc -verify-machineinstrs -debug-entry-values -filetype=asm -o - -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s
-; RUN: llc -verify-machineinstrs -debug-entry-values -filetype=asm -o - -mtriple=x86_64-unknown-linux-gnu \
-; RUN:    -relocation-model=pic < %s | FileCheck %s -check-prefix=PIC
-
-define i32 @fn() nounwind noinline uwtable "function-instrument"="xray-always" {
-    %eventptr = alloca i8
-    %eventsize = alloca i32
-    %eventtype = alloca i16
-    store i16 6, i16* %eventtype
-    %type = load i16, i16* %eventtype
-    store i32 3, i32* %eventsize
-    %val = load i32, i32* %eventsize
-    call void @llvm.xray.typedevent(i16 %type, i8* %eventptr, i32 %val)
-    ; CHECK-LABEL: Lxray_typed_event_sled_0:
-    ; CHECK:       .byte 0xeb, 0x14
-    ; CHECK-NEXT:  pushq %rdi
-    ; CHECK-NEXT:  pushq %rsi
-    ; CHECK-NEXT:  pushq %rdx
-    ; CHECK-NEXT:  movq %rdx, %rdi
-    ; CHECK-NEXT:  movq %rcx, %rsi
-    ; CHECK-NEXT:  movq %rax, %rdx
-    ; CHECK-NEXT:  callq __xray_TypedEvent
-    ; CHECK-NEXT:  popq %rdx
-    ; CHECK-NEXT:  popq %rsi
-    ; CHECK-NEXT:  popq %rdi
-
-    ; PIC-LABEL: Lxray_typed_event_sled_0:
-    ; PIC:       .byte 0xeb, 0x14
-    ; PIC-NEXT:  pushq %rdi
-    ; PIC-NEXT:  pushq %rsi
-    ; PIC-NEXT:  pushq %rdx
-    ; PIC-NEXT:  movq %rdx, %rdi
-    ; PIC-NEXT:  movq %rcx, %rsi
-    ; PIC-NEXT:  movq %rax, %rdx
-    ; PIC-NEXT:  callq __xray_TypedEvent at PLT
-    ; PIC-NEXT:  popq %rdx
-    ; PIC-NEXT:  popq %rsi
-    ; PIC-NEXT:  popq %rdi
-    ret i32 0
-}
-; CHECK-LABEL: xray_instr_map
-; CHECK-LABEL: Lxray_sleds_start0:
-; CHECK:       .quad {{.*}}xray_typed_event_sled_0
-
-declare void @llvm.xray.typedevent(i16, i8*, i32)


        


More information about the llvm-commits mailing list