1 // Without hotness threshold, print both hot and cold remarks.
2 // RUN: %clang_cc1 -triple x86_64-linux %s -emit-llvm-only -O3 \
3 // RUN:     -fprofile-sample-use=%S/Inputs/remarks-hotness.prof \
4 // RUN:     -Rpass=inline -Rpass-analysis=inline -Rpass-missed=inline \
5 // RUN:     -fexperimental-new-pass-manager -fdiagnostics-show-hotness 2>&1 \
6 // RUN:     | FileCheck -check-prefix=REMARKS %s
7 
8 // With auto hotness threshold, only print hot remarks.
9 // RUN: %clang_cc1 -triple x86_64-linux %s -emit-llvm-only -O3 \
10 // RUN:     -fprofile-sample-use=%S/Inputs/remarks-hotness.prof \
11 // RUN:     -Rpass=inline -Rpass-analysis=inline -Rpass-missed=inline \
12 // RUN:     -fexperimental-new-pass-manager -fdiagnostics-show-hotness \
13 // RUN:     -fdiagnostics-hotness-threshold=auto 2>&1 \
14 // RUN:     | FileCheck -check-prefix=HOT_CALL %s
15 
callee1()16 int callee1() {
17   return 1;
18 }
19 
callee2()20 __attribute__((noinline)) int callee2() {
21   return 2;
22 }
23 
24 // REMARKS: _Z7callee1v inlined into _Z7caller1v
25 // HOT_CALL: _Z7callee1v inlined into _Z7caller1v
caller1()26 int caller1() {
27   return callee1();
28 }
29 
30 // REMARKS: _Z7callee2v not inlined into _Z7caller2v
31 // HOT_CALL-NOT: _Z7callee2v not inlined into _Z7caller2v
caller2()32 int caller2() {
33   return callee2();
34 }
35