xref: /llvm-project/llvm/test/tools/llvm-profgen/noinline-noprobe.test (revision acfd0a345619c9293ac8fa5f690fa78b27a10814)
1; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noprobe.perfscript --binary=%S/Inputs/noprobe.perfbin --output=%t --skip-symbolization
2; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-RAW-PROFILE
3; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noprobe.mmap.perfscript --binary=%S/Inputs/noprobe.perfbin --output=%t --skip-symbolization
4; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-RAW-PROFILE
5; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noprobe.aggperfscript --binary=%S/Inputs/noprobe.perfbin --output=%t --skip-symbolization
6; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-RAW-PROFILE-AGG
7; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noprobe.perfscript --binary=%S/Inputs/noprobe.perfbin --output=%t
8; RUN: FileCheck %s --input-file %t --check-prefix=CHECK
9
10;CHECK: foo:1241:0
11;CHECK:  0: 0
12;CHECK:  1: 0
13;CHECK:  2: 19
14;CHECK:  3: 21 bar:21
15;CHECK:  4: 0
16;CHECK:  5: 0
17;CHECK: bar:926:21
18;CHECK:  0: 20
19;CHECK:  1: 20
20;CHECK:  2: 13
21;CHECK:  4: 6
22;CHECK:  5: 18
23
24CHECK-RAW-PROFILE:      7
25CHECK-RAW-PROFILE-NEXT: 5b0-5c8:7
26CHECK-RAW-PROFILE-NEXT: 5b0-5d7:13
27CHECK-RAW-PROFILE-NEXT: 5dc-5e9:6
28CHECK-RAW-PROFILE-NEXT: 5e5-5e9:12
29CHECK-RAW-PROFILE-NEXT: 5ff-62f:19
30CHECK-RAW-PROFILE-NEXT: 634-637:18
31CHECK-RAW-PROFILE-NEXT: 645-645:18
32CHECK-RAW-PROFILE-NEXT: 6
33CHECK-RAW-PROFILE-NEXT: 5c8->5dc:7
34CHECK-RAW-PROFILE-NEXT: 5d7->5e5:13
35CHECK-RAW-PROFILE-NEXT: 5e9->634:18
36CHECK-RAW-PROFILE-NEXT: 62f->5b0:21
37CHECK-RAW-PROFILE-NEXT: 637->645:18
38CHECK-RAW-PROFILE-NEXT: 645->5ff:19
39
40
41CHECK-RAW-PROFILE-AGG:      7
42CHECK-RAW-PROFILE-AGG-NEXT: 5b0-5c8:13
43CHECK-RAW-PROFILE-AGG-NEXT: 5b0-5d7:21
44CHECK-RAW-PROFILE-AGG-NEXT: 5dc-5e9:10
45CHECK-RAW-PROFILE-AGG-NEXT: 5e5-5e9:20
46CHECK-RAW-PROFILE-AGG-NEXT: 5ff-62f:31
47CHECK-RAW-PROFILE-AGG-NEXT: 634-637:30
48CHECK-RAW-PROFILE-AGG-NEXT: 645-645:30
49CHECK-RAW-PROFILE-AGG-NEXT: 6
50CHECK-RAW-PROFILE-AGG-NEXT: 5c8->5dc:13
51CHECK-RAW-PROFILE-AGG-NEXT: 5d7->5e5:21
52CHECK-RAW-PROFILE-AGG-NEXT: 5e9->634:30
53CHECK-RAW-PROFILE-AGG-NEXT: 62f->5b0:35
54CHECK-RAW-PROFILE-AGG-NEXT: 637->645:30
55CHECK-RAW-PROFILE-AGG-NEXT: 645->5ff:31
56
57
58; original code:
59; clang -O3 -g -fdebug-info-for-profiling test.c -fno-inline -o a.out
60#include <stdio.h>
61
62int bar(int x, int y) {
63  if (x % 3) {
64    return x - y;
65  }
66  return x + y;
67}
68
69void foo() {
70  int s, i = 0;
71  while (i++ < 4000 * 4000)
72    if (i % 91) s = bar(i, s); else s += 30;
73  printf("sum is %d\n", s);
74}
75
76int main() {
77  foo();
78  return 0;
79}
80