xref: /llvm-project/llvm/test/tools/llvm-profgen/recursion-compression-noprobe.test (revision bc380c0930c9e110b7f6dda97ffee417f9cba00d)
1ac14bb14Swlei; Firstly test uncompression(--compress-recursion=0)
2*bc380c09SHongtao Yu; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-noprobe.perfscript --binary=%S/Inputs/recursion-compression-noprobe.perfbin --output=%t --compress-recursion=0 --profile-summary-hot-count=0 --csspgo-preinliner=0 --gen-cs-nested-profile=0
3ac14bb14Swlei; RUN: FileCheck %s --input-file %t -check-prefix=CHECK-UNCOMPRESS
4*bc380c09SHongtao Yu; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-noprobe.perfscript --binary=%S/Inputs/recursion-compression-noprobe.perfbin --output=%t --profile-summary-hot-count=0 --csspgo-preinliner=0 --gen-cs-nested-profile=0
5ac14bb14Swlei; RUN: FileCheck %s --input-file %t
6*bc380c09SHongtao Yu; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-noprobe.perfscript --binary=%S/Inputs/recursion-compression-noprobe.perfbin --output=%t --compress-recursion=0 --profile-summary-hot-count=0 --csprof-max-context-depth=2 --csspgo-preinliner=0 --gen-cs-nested-profile=0
7856a6a50Swlei; RUN: FileCheck %s --input-file %t -check-prefix=CHECK-MAX-CTX-DEPTH
8ac14bb14Swlei
9484a569eSwlei; CHECK-UNCOMPRESS:[main:1 @ foo:3 @ fa:2 @ fb]:48:0
10f5537643Swlei; CHECK-UNCOMPRESS: 1: 11
11f5537643Swlei; CHECK-UNCOMPRESS: 2: 1 fa:1
12484a569eSwlei; CHECK-UNCOMPRESS: 65532: 11
13484a569eSwlei; CHECK-UNCOMPRESS:[main:1 @ foo:3 @ fa]:24:0
14484a569eSwlei; CHECK-UNCOMPRESS: 1: 1
15484a569eSwlei; CHECK-UNCOMPRESS: 2: 13 fb:11
16484a569eSwlei; CHECK-UNCOMPRESS: 65527: 1
17484a569eSwlei; CHECK-UNCOMPRESS:[main:1 @ foo]:7:0
1800ef28efSWenlei He; CHECK-UNCOMPRESS: 2: 1
1900ef28efSWenlei He; CHECK-UNCOMPRESS: 3: 2 fa:1
20484a569eSwlei; CHECK-UNCOMPRESS:[main:1 @ foo:3 @ fa:2 @ fb:2 @ fa]:7:0
21b9db7036SHongtao Yu; CHECK-UNCOMPRESS: 1: 1
22484a569eSwlei; CHECK-UNCOMPRESS: 2: 2 fb:1
23484a569eSwlei; CHECK-UNCOMPRESS:[main:1 @ foo:3 @ fa:2 @ fb:2 @ fa:2 @ fb]:2:0
24484a569eSwlei; CHECK-UNCOMPRESS: 2: 1 fa:1
25484a569eSwlei; CHECK-UNCOMPRESS: 65532: 1
26484a569eSwlei; CHECK-UNCOMPRESS:[main:1 @ foo:3 @ fa:2 @ fb:2 @ fa:2 @ fb:2 @ fa]:2:0
27b9db7036SHongtao Yu; CHECK-UNCOMPRESS: 4: 1
28c3aeabaeSwlei
29484a569eSwlei; CHECK-MAX-CTX-DEPTH: [foo:3 @ fa:2 @ fb]:47:0
30856a6a50Swlei; CHECK-MAX-CTX-DEPTH:  1: 11
31484a569eSwlei; CHECK-MAX-CTX-DEPTH:  65532: 11
32484a569eSwlei; CHECK-MAX-CTX-DEPTH: [main:1 @ foo:3 @ fa]:13:0
33484a569eSwlei; CHECK-MAX-CTX-DEPTH:  1: 1
34484a569eSwlei; CHECK-MAX-CTX-DEPTH:  2: 2
35484a569eSwlei; CHECK-MAX-CTX-DEPTH:  65527: 1
36484a569eSwlei; CHECK-MAX-CTX-DEPTH: [fa:2 @ fb:2 @ fa]:8:0
37856a6a50Swlei; CHECK-MAX-CTX-DEPTH:  1: 1
38856a6a50Swlei; CHECK-MAX-CTX-DEPTH:  2: 1
39856a6a50Swlei; CHECK-MAX-CTX-DEPTH:  4: 1
40484a569eSwlei; CHECK-MAX-CTX-DEPTH: [main:1 @ foo]:7:0
41856a6a50Swlei; CHECK-MAX-CTX-DEPTH:  2: 1
42856a6a50Swlei; CHECK-MAX-CTX-DEPTH:  3: 2 fa:1
43484a569eSwlei; CHECK-MAX-CTX-DEPTH: [fb:2 @ fa:2 @ fb]:1:0
44484a569eSwlei; CHECK-MAX-CTX-DEPTH:  65532: 1
45856a6a50Swlei
46ac14bb14Swlei
47484a569eSwlei;CHECK: [main:1 @ foo:3 @ fa:2 @ fb]:48:0
48f5537643Swlei;CHECK:  1: 11
49f5537643Swlei;CHECK:  2: 1 fa:1
50484a569eSwlei;CHECK:  65532: 11
51484a569eSwlei;CHECK: [main:1 @ foo:3 @ fa]:24:0
52484a569eSwlei;CHECK:  1: 1
53484a569eSwlei;CHECK:  2: 13 fb:11
54484a569eSwlei;CHECK:  65527: 1
55484a569eSwlei;CHECK: [main:1 @ foo:3 @ fa:2 @ fb:2 @ fa]:9:0
56484a569eSwlei;CHECK:  1: 1
57484a569eSwlei;CHECK:  2: 2 fb:1
58484a569eSwlei;CHECK:  4: 1
59484a569eSwlei;CHECK: [main:1 @ foo]:7:0
60f5537643Swlei;CHECK:  2: 1
61f5537643Swlei;CHECK:  3: 2 fa:1
62484a569eSwlei;CHECK: [main:1 @ foo:3 @ fa:2 @ fb:2 @ fa:2 @ fb]:1:0
63484a569eSwlei;CHECK:  65532: 1
64ac14bb14Swlei
65ac14bb14Swlei; original code:
66ac14bb14Swlei; clang -O3 -g test.c -o a.out
67ac14bb14Swlei#include <stdio.h>
68ac14bb14Swlei
69ac14bb14Swleiint fb(int n) {
70ac14bb14Swlei  if(n > 10) return fb(n / 2);
71ac14bb14Swlei  return fa(n - 1);
72ac14bb14Swlei}
73ac14bb14Swlei
74ac14bb14Swleiint fa(int n) {
75ac14bb14Swlei  if(n < 2) return n;
76ac14bb14Swlei  if(n % 2) return fb(n - 1);
77ac14bb14Swlei  return fa(n - 1);
78ac14bb14Swlei}
79ac14bb14Swlei
80ac14bb14Swleivoid foo() {
81ac14bb14Swlei  int s, i = 0;
82ac14bb14Swlei  while (i++ < 10000)
83ac14bb14Swlei    s += fa(i);
84ac14bb14Swlei  printf("sum is %d\n", s);
85ac14bb14Swlei}
86ac14bb14Swlei
87ac14bb14Swleiint main() {
88ac14bb14Swlei  foo();
89ac14bb14Swlei  return 0;
90ac14bb14Swlei}
91