xref: /llvm-project/compiler-rt/test/profile/instrprof-write-file-atexit-explicitly.c (revision dc09f9644144a9598837a3684414603edb175e51)
1 // RUN: rm -f %t.profraw
2 // RUN: %clang_profgen -o %t -O3 %s
3 // RUN: %run %t %t.profraw
4 // RUN: llvm-profdata merge -o %t.profdata %t.profraw
5 // RUN: %clang_profuse=%t.profdata -o - -S -emit-llvm %s | FileCheck %s
6 
7 int __llvm_profile_runtime = 0;
8 int __llvm_profile_register_write_file_atexit(void);
9 void __llvm_profile_set_filename(const char *);
10 int main(int argc, const char *argv[]) {
11   __llvm_profile_register_write_file_atexit();
12   // CHECK: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !prof ![[PD1:[0-9]+]]
13   if (argc < 2)
14     return 1;
15   __llvm_profile_set_filename(argv[1]);
16   return 0;
17 }
18 // CHECK: ![[PD1]] = !{!"branch_weights", i32 1, i32 2}
19