xref: /llvm-project/llvm/test/Transforms/PGOProfile/instr-gen-cold-function.ll (revision bef3b54ea10a564a2de72f658f2efd64f537c079)
1*bef3b54eSLei Wang; RUN: opt < %s  --passes=pgo-instr-gen -pgo-instrument-cold-function-only -pgo-function-entry-coverage -S  | FileCheck --check-prefixes=COLD %s
2*bef3b54eSLei Wang; RUN: opt < %s  --passes=pgo-instr-gen -pgo-instrument-cold-function-only -pgo-function-entry-coverage -pgo-cold-instrument-entry-threshold=1 -S  | FileCheck --check-prefixes=ENTRY-COUNT %s
3*bef3b54eSLei Wang; RUN: opt < %s  --passes=pgo-instr-gen -pgo-instrument-cold-function-only -pgo-function-entry-coverage -pgo-treat-unknown-as-cold -S  | FileCheck --check-prefixes=UNKNOWN-FUNC %s
4*bef3b54eSLei Wang
5*bef3b54eSLei Wang; COLD: call void @llvm.instrprof.cover(ptr @__profn_foo, i64  [[#]], i32 1, i32 0)
6*bef3b54eSLei Wang; COLD-NOT: __profn_main
7*bef3b54eSLei Wang; COLD-NOT: __profn_bar
8*bef3b54eSLei Wang
9*bef3b54eSLei Wang; ENTRY-COUNT: call void @llvm.instrprof.cover(ptr @__profn_foo, i64  [[#]], i32 1, i32 0)
10*bef3b54eSLei Wang; ENTRY-COUNT: call void @llvm.instrprof.cover(ptr @__profn_main, i64 [[#]], i32 1, i32 0)
11*bef3b54eSLei Wang
12*bef3b54eSLei Wang; UNKNOWN-FUNC: call void @llvm.instrprof.cover(ptr @__profn_bar, i64  [[#]], i32 1, i32 0)
13*bef3b54eSLei Wang; UNKNOWN-FUNC: call void @llvm.instrprof.cover(ptr @__profn_foo, i64  [[#]], i32 1, i32 0)
14*bef3b54eSLei Wang
15*bef3b54eSLei Wang
16*bef3b54eSLei Wangtarget datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
17*bef3b54eSLei Wangtarget triple = "x86_64-unknown-linux-gnu"
18*bef3b54eSLei Wang
19*bef3b54eSLei Wangdefine void @bar() {
20*bef3b54eSLei Wangentry:
21*bef3b54eSLei Wang  ret void
22*bef3b54eSLei Wang}
23*bef3b54eSLei Wang
24*bef3b54eSLei Wangdefine void @foo() !prof !0 {
25*bef3b54eSLei Wangentry:
26*bef3b54eSLei Wang  ret void
27*bef3b54eSLei Wang}
28*bef3b54eSLei Wang
29*bef3b54eSLei Wangdefine i32 @main() !prof !1 {
30*bef3b54eSLei Wangentry:
31*bef3b54eSLei Wang  ret i32 0
32*bef3b54eSLei Wang}
33*bef3b54eSLei Wang
34*bef3b54eSLei Wang!0 = !{!"function_entry_count", i64 0}
35*bef3b54eSLei Wang!1 = !{!"function_entry_count", i64 1}
36