xref: /llvm-project/llvm/test/tools/llvm-profgen/inline-cs-noprobe.test (revision bc380c0930c9e110b7f6dda97ffee417f9cba00d)
1; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --skip-symbolization --profile-summary-cold-count=0
2; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER
3; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --csspgo-preinliner=0 --gen-cs-nested-profile=0
4; RUN: FileCheck %s --input-file %t
5; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --ignore-stack-samples --csspgo-preinliner=0 --gen-cs-nested-profile=0
6; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-STRIP-CTX
7
8; RUN: llvm-profgen --format=extbinary --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --populate-profile-symbol-list=1 --csspgo-preinliner=0 --gen-cs-nested-profile=0
9; RUN: llvm-profdata show -show-prof-sym-list -sample %t | FileCheck %s --check-prefix=CHECK-SYM-LIST
10
11; CHECK-SYM-LIST: Dump profile symbol list
12; CHECK-SYM-LIST: bar
13; CHECK-SYM-LIST: foo
14; CHECK-SYM-LIST: main
15
16; CHECK:[main:1 @ foo]:309:0
17; CHECK: 2.1: 14
18; CHECK: 3: 15
19; CHECK: 3.1: 14 bar:14
20; CHECK: 3.2: 1
21; CHECK: 65526: 14
22; CHECK:[main:1 @ foo:3.1 @ bar]:84:0
23; CHECK: 1: 14
24
25; CHECK-UNWINDER: [main:1 @ foo]
26; CHECK-UNWINDER:   4
27; CHECK-UNWINDER:   670-6ad:1
28; CHECK-UNWINDER:   67e-69b:1
29; CHECK-UNWINDER:   67e-6ad:13
30; CHECK-UNWINDER:   6bd-6c8:14
31; CHECK-UNWINDER:   2
32; CHECK-UNWINDER:   69b->670:1
33; CHECK-UNWINDER:   6c8->67e:15
34; CHECK-UNWINDER: [main:1 @ foo:3.1 @ bar]
35; CHECK-UNWINDER:   1
36; CHECK-UNWINDER:   6af-6bb:14
37; CHECK-UNWINDER:   0
38
39; CHECK-STRIP-CTX: main:1109:0
40; CHECK-STRIP-CTX:  0: 0
41; CHECK-STRIP-CTX:  2: 0
42; CHECK-STRIP-CTX:  1: foo:1109
43; CHECK-STRIP-CTX:   2.1: 14
44; CHECK-STRIP-CTX:   3: 15
45; CHECK-STRIP-CTX:   3.2: 1
46; CHECK-STRIP-CTX:   4: 0
47; CHECK-STRIP-CTX:   7: 0
48; CHECK-STRIP-CTX:   65526: 14
49; CHECK-STRIP-CTX:   3.1: bar:196
50; CHECK-STRIP-CTX:    1: 14
51
52; original code:
53; clang -O3 -g test.c -o a.out
54#include <stdio.h>
55
56int bar(int x, int y) {
57  if (x % 3) {
58    return x - y;
59  }
60  return x + y;
61}
62
63void foo() {
64  int s, i = 0;
65  while (i++ < 4000 * 4000)
66    if (i % 91) s = bar(i, s); else s += 30;
67  printf("sum is %d\n", s);
68}
69
70int main() {
71  foo();
72  return 0;
73}
74