]>
Commit | Line | Data |
---|---|---|
3dfed10e XL |
1 | # Check for metadata, variables, declarations, and function definitions injected |
2 | # into LLVM IR when compiling with -Zinstrument-coverage. | |
3 | ||
4 | WIN32: $__llvm_profile_runtime_user = comdat any | |
5 | ||
6 | CHECK: @__llvm_coverage_mapping = internal constant | |
7 | CHECK-SAME: section "[[INSTR_PROF_COVMAP]]", align 8 | |
8 | ||
9 | WIN32: @__llvm_profile_runtime = external global i32 | |
10 | ||
11 | CHECK: @__profc__R{{[a-zA-Z0-9_]+}}testprog14will_be_called = [[PRIVATE_GLOBAL]] | |
12 | CHECK-SAME: section "[[INSTR_PROF_CNTS]]", align 8 | |
13 | ||
14 | CHECK: @__profd__R{{[a-zA-Z0-9_]+}}testprog14will_be_called = [[PRIVATE_GLOBAL]] | |
15 | CHECK-SAME: @__profc__R{{[a-zA-Z0-9_]+}}testprog14will_be_called, | |
16 | CHECK-SAME: ()* @_R{{[a-zA-Z0-9_]+}}testprog14will_be_called to i8*), | |
17 | CHECK-SAME: section "[[INSTR_PROF_DATA]]", align 8 | |
18 | ||
19 | CHECK: @__profc__R{{[a-zA-Z0-9_]+}}testprog4main = [[PRIVATE_GLOBAL]] | |
20 | CHECK-SAME: section "[[INSTR_PROF_CNTS]]", align 8 | |
21 | ||
22 | CHECK: @__profd__R{{[a-zA-Z0-9_]+}}testprog4main = [[PRIVATE_GLOBAL]] | |
23 | CHECK-SAME: @__profc__R{{[a-zA-Z0-9_]+}}testprog4main, | |
24 | CHECK-SAME: ()* @_R{{[a-zA-Z0-9_]+}}testprog4main to i8*), | |
25 | CHECK-SAME: section "[[INSTR_PROF_DATA]]", align 8 | |
26 | ||
27 | CHECK: @__llvm_prf_nm = private constant | |
28 | CHECK-SAME: section "[[INSTR_PROF_NAME]]", align 1 | |
29 | ||
30 | CHECK: @llvm.used = appending global | |
31 | CHECK-SAME: i8* bitcast ({ {{.*}} }* @__llvm_coverage_mapping to i8*) | |
32 | WIN32-SAME: i8* bitcast (i32 ()* @__llvm_profile_runtime_user to i8*) | |
33 | CHECK-SAME: i8* bitcast ({ {{.*}} }* @__profd__R{{[a-zA-Z0-9_]*}}testprog4main to i8*) | |
34 | CHECK-SAME: i8* getelementptr inbounds ({{.*}}* @__llvm_prf_nm, i32 0, i32 0) | |
35 | CHECK-SAME: section "llvm.metadata" | |
36 | ||
37 | CHECK: define hidden { {{.*}} } @_R{{[a-zA-Z0-9_]+}}testprog14will_be_called() unnamed_addr #{{[0-9]+}} { | |
38 | CHECK-NEXT: start: | |
39 | CHECK-NOT: bb{{[0-9]+}}: | |
40 | CHECK: %pgocount = load i64, i64* getelementptr inbounds | |
41 | CHECK-SAME: * @__profc__R{{[a-zA-Z0-9_]+}}testprog14will_be_called, | |
42 | ||
43 | CHECK: declare void @llvm.instrprof.increment(i8*, i64, i32, i32) #[[LLVM_INSTRPROF_INCREMENT_ATTR:[0-9]+]] | |
44 | ||
45 | WIN32: define linkonce_odr hidden i32 @__llvm_profile_runtime_user() #[[LLVM_PROFILE_RUNTIME_USER_ATTR:[0-9]+]] comdat { | |
46 | WIN32-NEXT: %1 = load i32, i32* @__llvm_profile_runtime | |
47 | WIN32-NEXT: ret i32 %1 | |
48 | WIN32-NEXT: } | |
49 | ||
50 | CHECK: attributes #[[LLVM_INSTRPROF_INCREMENT_ATTR]] = { nounwind } | |
51 | WIN32: attributes #[[LLVM_PROFILE_RUNTIME_USER_ATTR]] = { noinline } |