1
1
;; Test runtime symbols and various linkages.
2
2
3
3
; RUN: opt < %s -mtriple=x86_64-apple-macosx10.10.0 -passes=instrprof -S | FileCheck %s --check-prefixes=MACHO
4
- ; RUN: opt < %s -mtriple=x86_64 -passes=instrprof -S | FileCheck %s --check-prefix=ELF_GENERIC
5
4
; RUN: opt < %s -mtriple=x86_64-unknown-linux -passes=instrprof -S | FileCheck %s --check-prefixes=ELF,ELFRT
6
5
; RUN: opt < %s -mtriple=x86_64-unknown-fuchsia -passes=instrprof -S | FileCheck %s --check-prefixes=ELF,ELFRT
7
6
; RUN: opt < %s -mtriple=x86_64-scei-ps4 -passes=instrprof -S | FileCheck %s --check-prefixes=ELF,PS
8
7
; RUN: opt < %s -mtriple=x86_64-sie-ps5 -passes=instrprof -S | FileCheck %s --check-prefixes=ELF,PS
9
8
; RUN: opt < %s -mtriple=x86_64-pc-win32-coff -passes=instrprof -S | FileCheck %s --check-prefixes=COFF
10
9
; RUN: opt < %s -mtriple=powerpc64-ibm-aix-xcoff -passes=instrprof -S | FileCheck %s --check-prefixes=XCOFF
11
10
; RUN: opt < %s -mtriple=x86_64-pc-freebsd13 -passes=instrprof -S | FileCheck %s --check-prefixes=ELF
11
+ ; RUN: opt < %s -mtriple=wasm32-unknown-unknown -passes=instrprof -S | FileCheck %s --check-prefix=WASM
12
12
13
13
; MACHO: @__llvm_profile_runtime = external hidden global i32
14
- ; ELF_GENERIC: @__llvm_profile_runtime = external hidden global i32
15
14
; ELF-NOT: @__llvm_profile_runtime = external global i32
16
15
; XCOFF-NOT: @__llvm_profile_runtime = external hidden global i32
17
16
; COFF: @__llvm_profile_runtime = external hidden global i32
17
+ ; WASM: @__llvm_profile_runtime = external hidden global i32
18
18
19
19
; ELF: $__profc_foo = comdat nodeduplicate
20
20
; ELF: $__profc_foo_weak = comdat nodeduplicate
@@ -98,10 +98,10 @@ define available_externally void @foo_extern() {
98
98
declare void @llvm.instrprof.increment (ptr , i64 , i32 , i32 )
99
99
100
100
; ELF: @llvm.compiler.used = appending global {{.*}} [{{.*}}ptr @__profd_foo, ptr @__profd_foo_weak, ptr @"__profd_linkage.ll:foo_internal", ptr @__profd_foo_inline, ptr @__profd_foo_extern{{.*}}]
101
- ; ELF_GENERIC: @llvm.compiler.used = appending global [6 x ptr] [ptr @__llvm_profile_runtime, ptr @__profd_foo, ptr @__profd_foo_weak, ptr @"__profd_linkage.ll:foo_internal", ptr @__profd_foo_inline, ptr @__profd_foo_extern]
102
101
; MACHO: @llvm.compiler.used = appending global [6 x ptr] [ptr @__llvm_profile_runtime_user, ptr @__profd_foo, {{.*}}
103
102
; COFF: @llvm.compiler.used = appending global [6 x ptr] [ptr @__llvm_profile_runtime_user, ptr @__profd_foo, ptr @__profd_foo_weak, ptr @"__profd_linkage.ll:foo_internal", ptr @__profd_foo_inline, ptr @__profd_foo_extern]
104
103
; XCOFF: @llvm.used = appending global [6 x ptr] [ptr @__profd_foo, ptr @__profd_foo_weak, ptr @"__profd_linkage.ll:foo_internal", ptr @__profd_foo_inline, ptr @__profd_foo_extern, ptr @__llvm_prf_nm]
104
+ ; WASM: @llvm.used = appending global [7 x ptr] [ptr @__llvm_profile_runtime_user, ptr @__profd_foo, ptr @__profd_foo_weak, ptr @"__profd_linkage.ll:foo_internal", ptr @__profd_foo_inline, ptr @__profd_foo_extern, ptr @__llvm_prf_nm]
105
105
106
106
; MACHO: define linkonce_odr hidden i32 @__llvm_profile_runtime_user() {{.*}} {
107
107
; MACHO: %[[REG:.*]] = load i32, ptr @__llvm_profile_runtime
@@ -114,12 +114,11 @@ declare void @llvm.instrprof.increment(ptr, i64, i32, i32)
114
114
; PS: %[[REG:.*]] = load i32, ptr @__llvm_profile_runtime
115
115
; XCOFF-NOT: define .* __llvm_profile_runtime_user
116
116
117
- ; ELF_GENERIC: define internal void @__llvm_profile_register_functions() unnamed_addr {
118
- ; ELF_GENERIC-NEXT: call void @__llvm_profile_register_function(ptr @__llvm_profile_runtime)
119
- ; ELF_GENERIC-NEXT: call void @__llvm_profile_register_function(ptr @__profd_foo)
120
- ; ELF_GENERIC-NEXT: call void @__llvm_profile_register_function(ptr @__profd_foo_weak)
121
- ; ELF_GENERIC: call void @__llvm_profile_register_names_function(ptr @__llvm_prf_nm
122
- ; ELF_GENERIC-NEXT: ret void
123
- ; ELF_GENERIC-NEXT: }
117
+ ; WASM: define internal void @__llvm_profile_register_functions() unnamed_addr {
118
+ ; WASM-NEXT: call void @__llvm_profile_register_function(ptr @__profd_foo)
119
+ ; WASM-NEXT: call void @__llvm_profile_register_function(ptr @__profd_foo_weak)
120
+ ; WASM: call void @__llvm_profile_register_names_function(ptr @__llvm_prf_nm
121
+ ; WASM-NEXT: ret void
122
+ ; WASM-NEXT: }
124
123
125
124
; XCOFF-NOT: internal void @__llvm_profile_register_functions()
0 commit comments