1*67e74705SXin Li // Test that function entry counts are set correctly. 2*67e74705SXin Li 3*67e74705SXin Li // RUN: llvm-profdata merge %S/Inputs/func-entry.proftext -o %t.profdata 4*67e74705SXin Li // RUN: %clang_cc1 %s -o - -disable-llvm-optzns -emit-llvm -fprofile-instrument-use-path=%t.profdata | FileCheck %s 5*67e74705SXin Li 6*67e74705SXin Li void foo(void); 7*67e74705SXin Li 8*67e74705SXin Li // CHECK: @foo() #{{[0-9]}} !prof [[FOO:![0-9]+]] foo()9*67e74705SXin Livoid foo() { return; } 10*67e74705SXin Li 11*67e74705SXin Li // CHECK: @main() #{{[0-9]}} !prof [[MAIN:![0-9]+]] main()12*67e74705SXin Liint main() { 13*67e74705SXin Li int i; 14*67e74705SXin Li for (i = 0; i < 10000; i++) foo(); 15*67e74705SXin Li return 0; 16*67e74705SXin Li } 17*67e74705SXin Li 18*67e74705SXin Li // CHECK: [[FOO]] = !{!"function_entry_count", i64 1000} 19*67e74705SXin Li // CHECK: [[MAIN]] = !{!"function_entry_count", i64 1} 20