1 | // RUN: %clang_profgen -o %t -O3 %s |
2 | // RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t |
3 | // RUN: llvm-profdata merge -o %t.profdata %t.profraw |
4 | // RUN: %clang_profuse=%t.profdata -o - -S -emit-llvm %s | FileCheck %s |
5 | |
6 | void __llvm_profile_reset_counters(void); |
7 | void foo(int); |
8 | int main(void) { |
9 | foo(0); |
10 | __llvm_profile_reset_counters(); |
11 | foo(1); |
12 | return 0; |
13 | } |
14 | void foo(int N) { |
15 | // CHECK-LABEL: define{{( dso_local)?}} void @foo( |
16 | // CHECK: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !prof ![[FOO:[0-9]+]] |
17 | if (N) {} |
18 | } |
19 | // CHECK: ![[FOO]] = !{!"branch_weights", i32 2, i32 1} |
20 | |