diff --git a/llvm/test/CodeGen/AArch64/xray-attribute-instrumentation.ll b/llvm/test/CodeGen/AArch64/xray-attribute-instrumentation.ll --- a/llvm/test/CodeGen/AArch64/xray-attribute-instrumentation.ll +++ b/llvm/test/CodeGen/AArch64/xray-attribute-instrumentation.ll @@ -1,4 +1,5 @@ -; RUN: llc -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s -check-prefixes=CHECK,CHECK-LINUX +; RUN: llc -mtriple=aarch64-apple-darwin < %s | FileCheck %s -check-prefixes=CHECK,CHECK-MACOS define i32 @foo() nounwind noinline uwtable "function-instrument"="xray-always" { ; CHECK-LABEL: foo: @@ -26,11 +27,17 @@ ; CHECK-NEXT: ret } -; CHECK-LABEL: xray_instr_map -; CHECK-LABEL: Lxray_sleds_start0 -; CHECK: .xword .Lxray_sled_0 -; CHECK: .xword .Lxray_sled_1 -; CHECK-LABEL: Lxray_sleds_end0 +; CHECK-LINUX-LABEL: xray_instr_map +; CHECK-LINUX-LABEL: Lxray_sleds_start0 +; CHECK-LINUX: .xword .Lxray_sled_0 +; CHECK-LINUX: .xword .Lxray_sled_1 +; CHECK-LINUX-LABEL: Lxray_sleds_end0 + +; CHECK-MACOS-LABEL: xray_instr_map +; CHECK-MACOS-LABEL: Lxray_sleds_start0 +; CHECK-MACOS: .quad Lxray_sled_0 +; CHECK-MACOS: .quad Lxray_sled_1 +; CHECK-MACOS-LABEL: Lxray_sleds_end0 define i32 @bar() nounwind noinline uwtable "function-instrument"="xray-never" "function-instrument"="xray-always" { ; CHECK-LABEL: bar: @@ -58,11 +65,17 @@ ; CHECK-NEXT: ret } -; CHECK-LABEL: xray_instr_map -; CHECK-LABEL: Lxray_sleds_start1 -; CHECK: .xword .Lxray_sled_2 -; CHECK: .xword .Lxray_sled_3 -; CHECK-LABEL: Lxray_sleds_end1 +; CHECK-LINUX-LABEL: xray_instr_map +; CHECK-LINUX-LABEL: Lxray_sleds_start1 +; CHECK-LINUX: .xword .Lxray_sled_2 +; CHECK-LINUX: .xword .Lxray_sled_3 +; CHECK-LINUX-LABEL: Lxray_sleds_end1 + +; CHECK-MACOS-LABEL: xray_instr_map +; CHECK-MACOS-LABEL: Lxray_sleds_start1 +; CHECK-MACOS: .quad Lxray_sled_2 +; CHECK-MACOS: .quad Lxray_sled_3 +; CHECK-MACOS-LABEL: Lxray_sleds_end1 define i32 @instrumented() nounwind noinline uwtable "xray-instruction-threshold"="1" { ; CHECK-LABEL: instrumented: @@ -90,15 +103,21 @@ ; CHECK-NEXT: ret } -; CHECK-LABEL: xray_instr_map -; CHECK-LABEL: Lxray_sleds_start2 -; CHECK: .xword .Lxray_sled_4 -; CHECK: .xword .Lxray_sled_5 -; CHECK-LABEL: Lxray_sleds_end2 +; CHECK-LINUX-LABEL: xray_instr_map +; CHECK-LINUX-LABEL: Lxray_sleds_start2 +; CHECK-LINUX: .xword .Lxray_sled_4 +; CHECK-LINUX: .xword .Lxray_sled_5 +; CHECK-LINUX-LABEL: Lxray_sleds_end2 + +; CHECK-MACOS-LABEL: xray_instr_map +; CHECK-MACOS-LABEL: Lxray_sleds_start2 +; CHECK-MACOS: .quad Lxray_sled_4 +; CHECK-MACOS: .quad Lxray_sled_5 +; CHECK-MACOS-LABEL: Lxray_sleds_end2 define i32 @not_instrumented() nounwind noinline uwtable "xray-instruction-threshold"="1" "function-instrument"="xray-never" { ; CHECK-LABEL: not_instrumented -; CHECK-NOT: .Lxray_sled_6 +; CHECK-NOT: Lxray_sled_6 ret i32 0 ; CHECK: ret } diff --git a/llvm/test/CodeGen/AArch64/xray-omit-function-index.ll b/llvm/test/CodeGen/AArch64/xray-omit-function-index.ll --- a/llvm/test/CodeGen/AArch64/xray-omit-function-index.ll +++ b/llvm/test/CodeGen/AArch64/xray-omit-function-index.ll @@ -1,4 +1,5 @@ -; RUN: llc -no-xray-index -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s +; RUN: llc -no-xray-index -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s --check-prefixes=CHECK,CHECK-LINUX +; RUN: llc -no-xray-index -mtriple=aarch64-apple-darwin < %s | FileCheck %s --check-prefixes=CHECK,CHECK-MACOS define i32 @foo() nounwind noinline uwtable "function-instrument"="xray-always" { ; CHECK-LABEL: Lxray_sled_0: @@ -24,10 +25,16 @@ ; CHECK-LABEL: Ltmp1: ; CHECK-NEXT: ret } -; CHECK-LABEL: xray_instr_map -; CHECK-LABEL: Lxray_sleds_start0 -; CHECK: .xword .Lxray_sled_0 -; CHECK: .xword .Lxray_sled_1 -; CHECK-LABEL: Lxray_sleds_end0 +; CHECK-LINUX-LABEL: xray_instr_map +; CHECK-LINUX-LABEL: Lxray_sleds_start0 +; CHECK-LINUX: .xword .Lxray_sled_0 +; CHECK-LINUX: .xword .Lxray_sled_1 +; CHECK-LINUX-LABEL: Lxray_sleds_end0 + +; CHECK-MACOS-LABEL: xray_instr_map +; CHECK-MACOS-LABEL: Lxray_sleds_start0 +; CHECK-MACOS: .quad Lxray_sled_0 +; CHECK-MACOS: .quad Lxray_sled_1 +; CHECK-MACOS-LABEL: Lxray_sleds_end0 ; CHECK-NOT: xray_fn_idx diff --git a/llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-entry.ll b/llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-entry.ll --- a/llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-entry.ll +++ b/llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-entry.ll @@ -1,4 +1,5 @@ -; RUN: llc -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s --check-prefixes=CHECK,CHECK-LINUX +; RUN: llc -mtriple=aarch64-apple-darwin < %s | FileCheck %s --check-prefixes=CHECK,CHECK-MACOS define i32 @foo() nounwind noinline uwtable "function-instrument"="xray-always" "xray-skip-entry" { ; CHECK-NOT: Lxray_sled_0: @@ -15,7 +16,13 @@ ; CHECK-LABEL: Ltmp0: ; CHECK-NEXT: ret } -; CHECK-LABEL: xray_instr_map -; CHECK-LABEL: Lxray_sleds_start0 -; CHECK: .xword .Lxray_sled_0 -; CHECK-LABEL: Lxray_sleds_end0 + +; CHECK-LINUX-LABEL: xray_instr_map +; CHECK-LINUX-LABEL: Lxray_sleds_start0 +; CHECK-LINUX: .xword .Lxray_sled_0 +; CHECK-LINUX-LABEL: Lxray_sleds_end0 + +; CHECK-MACOS-LABEL: xray_instr_map +; CHECK-MACOS-LABEL: Lxray_sleds_start0 +; CHECK-MACOS: .quad Lxray_sled_0 +; CHECK-MACOS-LABEL: Lxray_sleds_end0 diff --git a/llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-exit.ll b/llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-exit.ll --- a/llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-exit.ll +++ b/llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-exit.ll @@ -1,4 +1,5 @@ -; RUN: llc -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s --check-prefixes=CHECK,CHECK-LINUX +; RUN: llc -mtriple=aarch64-apple-darwin < %s | FileCheck %s --check-prefixes=CHECK,CHECK-MACOS define i32 @foo() nounwind noinline uwtable "function-instrument"="xray-always" "xray-skip-exit" { ; CHECK-LABEL: Lxray_sled_0: @@ -15,7 +16,13 @@ ; CHECK-NOT: Lxray_sled_1: ; CHECK: ret } -; CHECK-LABEL: xray_instr_map -; CHECK-LABEL: Lxray_sleds_start0 -; CHECK: .xword .Lxray_sled_0 -; CHECK-LABEL: Lxray_sleds_end0 + +; CHECK-LINUX-LABEL: xray_instr_map +; CHECK-LINUX-LABEL: Lxray_sleds_start0 +; CHECK-LINUX: .xword .Lxray_sled_0 +; CHECK-LINUX-LABEL: Lxray_sleds_end0 + +; CHECK-MACOS-LABEL: xray_instr_map +; CHECK-MACOS-LABEL: Lxray_sleds_start0 +; CHECK-MACOS: .quad Lxray_sled_0 +; CHECK-MACOS-LABEL: Lxray_sleds_end0 diff --git a/llvm/test/CodeGen/AArch64/xray-tail-call-sled.ll b/llvm/test/CodeGen/AArch64/xray-tail-call-sled.ll --- a/llvm/test/CodeGen/AArch64/xray-tail-call-sled.ll +++ b/llvm/test/CodeGen/AArch64/xray-tail-call-sled.ll @@ -1,8 +1,9 @@ -; RUN: llc -mtriple=aarch64-linux-gnu < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-linux-gnu < %s | FileCheck %s --check-prefixes=CHECK,CHECK-LINUX +; RUN: llc -mtriple=aarch64-apple-darwin < %s | FileCheck %s --check-prefixes=CHECK,CHECK-MACOS define i32 @callee() nounwind noinline uwtable "function-instrument"="xray-always" { ; CHECK: .p2align 2 -; CHECK-LABEL: .Lxray_sled_0: +; CHECK-LABEL: Lxray_sled_0: ; CHECK-NEXT: b #32 ; CHECK-NEXT: nop ; CHECK-NEXT: nop @@ -11,11 +12,11 @@ ; CHECK-NEXT: nop ; CHECK-NEXT: nop ; CHECK-NEXT: nop -; CHECK-LABEL: .Ltmp0: +; CHECK-LABEL: Ltmp0: ret i32 0 ; CHECK-NEXT: mov w0, wzr ; CHECK-NEXT: .p2align 2 -; CHECK-LABEL: .Lxray_sled_1: +; CHECK-LABEL: Lxray_sled_1: ; CHECK-NEXT: b #32 ; CHECK-NEXT: nop ; CHECK-NEXT: nop @@ -24,19 +25,31 @@ ; CHECK-NEXT: nop ; CHECK-NEXT: nop ; CHECK-NEXT: nop -; CHECK-LABEL: .Ltmp1: +; CHECK-LABEL: Ltmp1: ; CHECK-NEXT: ret } -; CHECK-LABEL: xray_instr_map -; CHECK-LABEL: .Lxray_sleds_start0: -; CHECK-NEXT: .Ltmp2: -; CHECK: .xword .Lxray_sled_0-.Ltmp2 -; CHECK: .Ltmp3: -; CHECK-NEXT: .xword .Lxray_sled_1-.Ltmp3 -; CHECK-LABEL: Lxray_sleds_end0: -; CHECK-LABEL: xray_fn_idx -; CHECK: .xword .Lxray_sleds_start0 -; CHECK-NEXT: .xword .Lxray_sleds_end0 + +; CHECK-LINUX-LABEL: xray_instr_map +; CHECK-LINUX-LABEL: .Lxray_sleds_start0: +; CHECK-LINUX-NEXT: .Ltmp2: +; CHECK-LINUX: .xword .Lxray_sled_0-.Ltmp2 +; CHECK-LINUX: .Ltmp3: +; CHECK-LINUX-NEXT: .xword .Lxray_sled_1-.Ltmp3 +; CHECK-LINUX-LABEL: Lxray_sleds_end0: +; CHECK-LINUX-LABEL: xray_fn_idx +; CHECK-LINUX: .xword .Lxray_sleds_start0 +; CHECK-LINUX-NEXT: .xword .Lxray_sleds_end0 + +; CHECK-MACOS-LABEL: xray_instr_map +; CHECK-MACOS-LABEL: Lxray_sleds_start0: +; CHECK-MACOS-NEXT: Ltmp2: +; CHECK-MACOS: .quad Lxray_sled_0-Ltmp2 +; CHECK-MACOS: Ltmp3: +; CHECK-MACOS-NEXT: .quad Lxray_sled_1-Ltmp3 +; CHECK-MACOS-LABEL: Lxray_sleds_end0: +; CHECK-MACOS-LABEL: xray_fn_idx +; CHECK-MACOS: .quad Lxray_sleds_start0 +; CHECK-MACOS-NEXT: .quad Lxray_sleds_end0 define i32 @caller() nounwind noinline uwtable "function-instrument"="xray-always" { ; CHECK: .p2align 2 @@ -49,7 +62,7 @@ ; CHECK-NEXT: nop ; CHECK-NEXT: nop ; CHECK-NEXT: nop -; CHECK-LABEL: .Ltmp4: +; CHECK-LABEL: Ltmp4: ; CHECK: .p2align 2 ; CHECK-LABEL: Lxray_sled_3: ; CHECK-NEXT: b #32 @@ -60,16 +73,27 @@ ; CHECK-NEXT: nop ; CHECK-NEXT: nop ; CHECK-NEXT: nop -; CHECK-LABEL: .Ltmp5: +; CHECK-LABEL: Ltmp5: %retval = tail call i32 @callee() -; CHECK: b callee +; CHECK-LINUX: b callee +; CHECK-MACOS: b _callee ret i32 %retval } -; CHECK-LABEL: xray_instr_map -; CHECK-LABEL: Lxray_sleds_start1: -; CHECK: .xword .Lxray_sled_2 -; CHECK: .xword .Lxray_sled_3 -; CHECK-LABEL: Lxray_sleds_end1: -; CHECK: .section xray_fn_idx,{{.*}} -; CHECK: .xword .Lxray_sleds_start1 -; CHECK-NEXT: .xword .Lxray_sleds_end1 + +; CHECK-LINUX-LABEL: xray_instr_map +; CHECK-LINUX-LABEL: Lxray_sleds_start1: +; CHECK-LINUX: .xword .Lxray_sled_2 +; CHECK-LINUX: .xword .Lxray_sled_3 +; CHECK-LINUX-LABEL: Lxray_sleds_end1: +; CHECK-LINUX: .section xray_fn_idx,{{.*}} +; CHECK-LINUX: .xword .Lxray_sleds_start1 +; CHECK-LINUX-NEXT: .xword .Lxray_sleds_end1 + +; CHECK-MACOS-LABEL: xray_instr_map +; CHECK-MACOS-LABEL: Lxray_sleds_start1: +; CHECK-MACOS: .quad Lxray_sled_2 +; CHECK-MACOS: .quad Lxray_sled_3 +; CHECK-MACOS-LABEL: Lxray_sleds_end1: +; CHECK-MACOS: .section __DATA,xray_fn_idx +; CHECK-MACOS: .quad Lxray_sleds_start1 +; CHECK-MACOS-NEXT: .quad Lxray_sleds_end1