xref: /llvm-project/llvm/test/tools/llvm-profdata/merge-filter.test (revision 2b8649fbecdc300cde1032d739484690f75a27ba)
1Test llvm-profdata merge with function filters.
2
3RUN: llvm-profdata merge --sample %p/Inputs/sample-profile.proftext --text --function="_Z3.*" | FileCheck %s --check-prefix=CHECK-FILTER1
4RUN: llvm-profdata merge --sample %p/Inputs/sample-profile.proftext --text --no-function="main" | FileCheck %s --check-prefix=CHECK-FILTER1
5CHECK-FILTER1: _Z3bari:20301:1437
6CHECK-NEXT:  1: 1437
7CHECK-NEXT: _Z3fooi:7711:610
8CHECK-NEXT:  1: 610
9CHECK-NOT: main
10
11RUN: llvm-profdata merge --sample %p/Inputs/sample-profile.proftext --text --function="_Z3.*" --no-function="fooi$" | FileCheck %s --check-prefix=CHECK-FILTER2
12CHECK-FILTER2: _Z3bari:20301:1437
13CHECK-NEXT:  1: 1437
14CHECK-NOT: main
15CHECK-NOT: _Z3fooi
16
17RUN: llvm-profdata merge --sample --extbinary --use-md5 -output=%t.0.profdata %p/Inputs/sample-profile.proftext
18RUN: llvm-profdata merge --sample %t.0.profdata --text --function="_Z3fooi" | FileCheck %s --check-prefix=CHECK-FILTER-MD5
19CHECK-FILTER-MD5: 1228452328526475178:7711:610
20CHECK-NEXT:  1: 610
21CHECK-NOT: 15822663052811949562
22CHECK-NOT: 3727899762981752933
23
24RUN: llvm-profdata merge --instr %p/Inputs/basic.proftext --text --function="foo" | FileCheck %s --check-prefix=CHECK-FILTER3
25RUN: llvm-profdata merge --instr %p/Inputs/basic.proftext --text --no-function="main" | FileCheck %s --check-prefix=CHECK-FILTER3
26CHECK-FILTER3: foo
27CHECK-NEXT: # Func Hash:
28CHECK-NEXT: 10
29CHECK-NEXT: # Num Counters:
30CHECK-NEXT: 2
31CHECK-NEXT: # Counter Values:
32CHECK-NEXT: 499500
33CHECK-NEXT: 179900
34CHECK-NEXT:
35CHECK-NEXT: foo2
36CHECK-NEXT: # Func Hash:
37CHECK-NEXT: 10
38CHECK-NEXT: # Num Counters:
39CHECK-NEXT: 2
40CHECK-NEXT: # Counter Values:
41CHECK-NEXT: 500500
42CHECK-NEXT: 180100
43
44RUN: llvm-profdata merge --instr %p/Inputs/basic.proftext --text --function="foo" --no-function="^foo$" | FileCheck %s --check-prefix=CHECK-FILTER4
45CHECK-FILTER4: foo2
46CHECK-NEXT: # Func Hash:
47CHECK-NEXT: 10
48CHECK-NEXT: # Num Counters:
49CHECK-NEXT: 2
50CHECK-NEXT: # Counter Values:
51CHECK-NEXT: 500500
52CHECK-NEXT: 180100
53
54RUN: llvm-profdata merge --sample %p/Inputs/cs-sample.proftext --text --function="main.*@.*_Z5funcBi" | FileCheck %s --check-prefix=CHECK-FILTER5
55CHECK-FILTER5: [main:3.1 @ _Z5funcBi:1 @ _Z8funcLeafi]:500853:20
56CHECK-NEXT:  0: 15
57CHECK-NEXT:  1: 15
58CHECK-NEXT:  3: 74946
59CHECK-NEXT:  4: 74941 _Z3fibi:82359
60CHECK-NEXT:  10: 23324
61CHECK-NEXT:  11: 23327 _Z3fibi:25228
62CHECK-NEXT:  15: 11
63CHECK-NEXT:  !Attributes: 1
64CHECK-NEXT: [main:3.1 @ _Z5funcBi]:120:19
65CHECK-NEXT:  0: 19
66CHECK-NEXT:  1: 19 _Z8funcLeafi:20
67CHECK-NEXT:  3: 12
68CHECK-NEXT:  !Attributes: 1
69
70