20 lines · c
1// RUN: %clang_profgen -o %t -O3 %s2// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t3// RUN: llvm-profdata merge -o %t.profdata %t.profraw4// RUN: %clang_profuse=%t.profdata -o - -S -emit-llvm %s | FileCheck %s5 6void __llvm_profile_reset_counters(void);7void foo(int);8int main(void) {9 foo(0);10 __llvm_profile_reset_counters();11 foo(1);12 return 0;13}14void foo(int N) {15 // CHECK-LABEL: define{{( dso_local)?}}{{( arm_aapcs_vfpcc)?}} 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