diff options
Diffstat (limited to 'test/tools/llvm-profdata')
23 files changed, 430 insertions, 0 deletions
diff --git a/test/tools/llvm-profdata/Inputs/bad-hash.profdata b/test/tools/llvm-profdata/Inputs/bad-hash.profdata new file mode 100644 index 000000000000..faa6f4015253 --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/bad-hash.profdata @@ -0,0 +1,4 @@ +function_count_not +badhash +1 +1 diff --git a/test/tools/llvm-profdata/Inputs/bar3-1.profdata b/test/tools/llvm-profdata/Inputs/bar3-1.profdata new file mode 100644 index 000000000000..5486e9d84d72 --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/bar3-1.profdata @@ -0,0 +1,6 @@ +bar +3 +3 +1 +2 +3 diff --git a/test/tools/llvm-profdata/Inputs/c-general.profdata b/test/tools/llvm-profdata/Inputs/c-general.profdata Binary files differnew file mode 100644 index 000000000000..e8cef21de5f2 --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/c-general.profdata diff --git a/test/tools/llvm-profdata/Inputs/empty.profdata b/test/tools/llvm-profdata/Inputs/empty.profdata new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/empty.profdata diff --git a/test/tools/llvm-profdata/Inputs/extra-word.profdata b/test/tools/llvm-profdata/Inputs/extra-word.profdata new file mode 100644 index 000000000000..67a662909cf0 --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/extra-word.profdata @@ -0,0 +1,2 @@ +extra 1 word +1 diff --git a/test/tools/llvm-profdata/Inputs/foo3-1.profdata b/test/tools/llvm-profdata/Inputs/foo3-1.profdata new file mode 100644 index 000000000000..14a620043576 --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/foo3-1.profdata @@ -0,0 +1,6 @@ +foo +3 +3 +1 +2 +3 diff --git a/test/tools/llvm-profdata/Inputs/foo3-2.profdata b/test/tools/llvm-profdata/Inputs/foo3-2.profdata new file mode 100644 index 000000000000..801846e44045 --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/foo3-2.profdata @@ -0,0 +1,6 @@ +foo +3 +3 +7 +5 +3 diff --git a/test/tools/llvm-profdata/Inputs/foo3bar3-1.profdata b/test/tools/llvm-profdata/Inputs/foo3bar3-1.profdata new file mode 100644 index 000000000000..12157b9f9ada --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/foo3bar3-1.profdata @@ -0,0 +1,13 @@ +foo +3 +3 +2 +3 +5 + +bar +3 +3 +7 +11 +13 diff --git a/test/tools/llvm-profdata/Inputs/foo3bar3-2.profdata b/test/tools/llvm-profdata/Inputs/foo3bar3-2.profdata new file mode 100644 index 000000000000..f1f10bd6f3df --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/foo3bar3-2.profdata @@ -0,0 +1,13 @@ +foo +3 +3 +17 +19 +23 + +bar +3 +3 +29 +31 +37 diff --git a/test/tools/llvm-profdata/Inputs/foo4-1.profdata b/test/tools/llvm-profdata/Inputs/foo4-1.profdata new file mode 100644 index 000000000000..31d2a2ce7569 --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/foo4-1.profdata @@ -0,0 +1,7 @@ +foo +4 +4 +11 +22 +33 +44 diff --git a/test/tools/llvm-profdata/Inputs/foo4-2.profdata b/test/tools/llvm-profdata/Inputs/foo4-2.profdata new file mode 100644 index 000000000000..01d8309b5ce2 --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/foo4-2.profdata @@ -0,0 +1,7 @@ +foo +4 +4 +7 +6 +5 +4 diff --git a/test/tools/llvm-profdata/Inputs/invalid-count-later.profdata b/test/tools/llvm-profdata/Inputs/invalid-count-later.profdata new file mode 100644 index 000000000000..2b61c55a6766 --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/invalid-count-later.profdata @@ -0,0 +1,4 @@ +invalid_count +1 +1 +1later diff --git a/test/tools/llvm-profdata/Inputs/no-counts.profdata b/test/tools/llvm-profdata/Inputs/no-counts.profdata new file mode 100644 index 000000000000..5c1fa15c086f --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/no-counts.profdata @@ -0,0 +1,3 @@ +no_counts +0 +0 diff --git a/test/tools/llvm-profdata/Inputs/overflow.profdata b/test/tools/llvm-profdata/Inputs/overflow.profdata new file mode 100644 index 000000000000..c9a9d697ecfb --- /dev/null +++ b/test/tools/llvm-profdata/Inputs/overflow.profdata @@ -0,0 +1,4 @@ +overflow +1 +1 +9223372036854775808 diff --git a/test/tools/llvm-profdata/c-general.test b/test/tools/llvm-profdata/c-general.test new file mode 100644 index 000000000000..9b6cd7f4828c --- /dev/null +++ b/test/tools/llvm-profdata/c-general.test @@ -0,0 +1,24 @@ +REGENERATE: You need a checkout of clang with compiler-rt to generate the +REGENERATE: binary file here. These shell commands can be used to regenerate +REGENERATE: it. +REGENERATE: +REGENERATE: $ SRC=path/to/llvm +REGENERATE: $ CFE=$SRC/tools/clang +REGENERATE: $ TESTDIR=$SRC/test/tools/llvm-profdata +REGENERATE: $ CFE_TESTDIR=$CFE/test/Profile +REGENERATE: $ clang -o a.out -fprofile-instr-generate $CFE_TESTDIR/test/Profile/c-general.c +REGENERATE: $ LLVM_PROFILE_FILE=$TESTDIR/Inputs/c-general.profdata ./a.out + +RUN: llvm-profdata show %p/Inputs/c-general.profdata -o - | FileCheck %s -check-prefix=CHECK +RUN: llvm-profdata show %p/Inputs/c-general.profdata -o - --function=switches | FileCheck %s -check-prefix=SWITCHES -check-prefix=CHECK + +SWITCHES-LABEL: Counters: +SWITCHES-NEXT: switches: +SWITCHES-NEXT: Hash: 0x0000000000000013 +SWITCHES-NEXT: Counters: 19 +SWITCHES-NEXT: Function count: 1 +SWITCHES-LABEL: Functions shown: 1 + +CHECK-LABEL: Total functions: 11 +CHECK-NEXT: Maximum function count: 1 +CHECK-NEXT: Maximum internal block count: 100 diff --git a/test/tools/llvm-profdata/errors.test b/test/tools/llvm-profdata/errors.test new file mode 100644 index 000000000000..28262efe0638 --- /dev/null +++ b/test/tools/llvm-profdata/errors.test @@ -0,0 +1,16 @@ +RUN: llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/foo4-1.profdata -o %t.out 2>&1 | FileCheck %s --check-prefix=HASH +HASH: foo4-1.profdata: foo: Function hash mismatch + +RUN: llvm-profdata merge %p/Inputs/overflow.profdata %p/Inputs/overflow.profdata -o %t.out 2>&1 | FileCheck %s --check-prefix=OVERFLOW +OVERFLOW: overflow.profdata: overflow: Counter overflow + +RUN: not llvm-profdata show %p/Inputs/invalid-count-later.profdata 2>&1 | FileCheck %s --check-prefix=INVALID-COUNT-LATER +RUN: not llvm-profdata merge %p/Inputs/invalid-count-later.profdata %p/Inputs/invalid-count-later.profdata -o %t.out 2>&1 | FileCheck %s --check-prefix=INVALID-COUNT-LATER +INVALID-COUNT-LATER: error: {{.*}}invalid-count-later.profdata: Malformed profile data + +RUN: not llvm-profdata show %p/Inputs/bad-hash.profdata 2>&1 | FileCheck %s --check-prefix=BAD-HASH +RUN: not llvm-profdata merge %p/Inputs/bad-hash.profdata %p/Inputs/bad-hash.profdata -o %t.out 2>&1 | FileCheck %s --check-prefix=BAD-HASH +BAD-HASH: error: {{.*}}bad-hash.profdata: Malformed profile data + +RUN: not llvm-profdata show %p/Inputs/no-counts.profdata 2>&1 | FileCheck %s --check-prefix=NO-COUNTS +NO-COUNTS: error: {{.*}}no-counts.profdata: Malformed profile data diff --git a/test/tools/llvm-profdata/raw-32-bits-be.test b/test/tools/llvm-profdata/raw-32-bits-be.test new file mode 100644 index 000000000000..86ac56d39f26 --- /dev/null +++ b/test/tools/llvm-profdata/raw-32-bits-be.test @@ -0,0 +1,42 @@ +RUN: printf '\377lprofR\201' > %t +RUN: printf '\0\0\0\0\0\0\0\1' >> %t +RUN: printf '\0\0\0\0\0\0\0\2' >> %t +RUN: printf '\0\0\0\0\0\0\0\3' >> %t +RUN: printf '\0\0\0\0\0\0\0\6' >> %t +RUN: printf '\0\0\0\0\1\0\0\0' >> %t +RUN: printf '\0\0\0\0\2\0\0\0' >> %t + +RUN: printf '\0\0\0\3' >> %t +RUN: printf '\0\0\0\1' >> %t +RUN: printf '\0\0\0\0\0\0\0\1' >> %t +RUN: printf '\2\0\0\0' >> %t +RUN: printf '\1\0\0\0' >> %t + +RUN: printf '\0\0\0\3' >> %t +RUN: printf '\0\0\0\2' >> %t +RUN: printf '\0\0\0\0\0\0\0\2' >> %t +RUN: printf '\2\0\0\03' >> %t +RUN: printf '\1\0\0\10' >> %t + +RUN: printf '\0\0\0\0\0\0\0\023' >> %t +RUN: printf '\0\0\0\0\0\0\0\067' >> %t +RUN: printf '\0\0\0\0\0\0\0\101' >> %t +RUN: printf 'foobar' >> %t + +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s + +CHECK: Counters: +CHECK: foo: +CHECK: Hash: 0x0000000000000001 +CHECK: Counters: 1 +CHECK: Function count: 19 +CHECK: Block counts: [] +CHECK: bar: +CHECK: Hash: 0x0000000000000002 +CHECK: Counters: 2 +CHECK: Function count: 55 +CHECK: Block counts: [65] +CHECK: Functions shown: 2 +CHECK: Total functions: 2 +CHECK: Maximum function count: 55 +CHECK: Maximum internal block count: 65 diff --git a/test/tools/llvm-profdata/raw-32-bits-le.test b/test/tools/llvm-profdata/raw-32-bits-le.test new file mode 100644 index 000000000000..9325e7eb0f52 --- /dev/null +++ b/test/tools/llvm-profdata/raw-32-bits-le.test @@ -0,0 +1,42 @@ +RUN: printf '\201Rforpl\377' > %t +RUN: printf '\1\0\0\0\0\0\0\0' >> %t +RUN: printf '\2\0\0\0\0\0\0\0' >> %t +RUN: printf '\3\0\0\0\0\0\0\0' >> %t +RUN: printf '\6\0\0\0\0\0\0\0' >> %t +RUN: printf '\0\0\0\1\0\0\0\0' >> %t +RUN: printf '\0\0\0\2\0\0\0\0' >> %t + +RUN: printf '\3\0\0\0' >> %t +RUN: printf '\1\0\0\0' >> %t +RUN: printf '\1\0\0\0\0\0\0\0' >> %t +RUN: printf '\0\0\0\2' >> %t +RUN: printf '\0\0\0\1' >> %t + +RUN: printf '\3\0\0\0' >> %t +RUN: printf '\2\0\0\0' >> %t +RUN: printf '\02\0\0\0\0\0\0\0' >> %t +RUN: printf '\03\0\0\2' >> %t +RUN: printf '\10\0\0\1' >> %t + +RUN: printf '\023\0\0\0\0\0\0\0' >> %t +RUN: printf '\067\0\0\0\0\0\0\0' >> %t +RUN: printf '\101\0\0\0\0\0\0\0' >> %t +RUN: printf 'foobar' >> %t + +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s + +CHECK: Counters: +CHECK: foo: +CHECK: Hash: 0x0000000000000001 +CHECK: Counters: 1 +CHECK: Function count: 19 +CHECK: Block counts: [] +CHECK: bar: +CHECK: Hash: 0x0000000000000002 +CHECK: Counters: 2 +CHECK: Function count: 55 +CHECK: Block counts: [65] +CHECK: Functions shown: 2 +CHECK: Total functions: 2 +CHECK: Maximum function count: 55 +CHECK: Maximum internal block count: 65 diff --git a/test/tools/llvm-profdata/raw-64-bits-be.test b/test/tools/llvm-profdata/raw-64-bits-be.test new file mode 100644 index 000000000000..b97d8b5dac6d --- /dev/null +++ b/test/tools/llvm-profdata/raw-64-bits-be.test @@ -0,0 +1,42 @@ +RUN: printf '\377lprofr\201' > %t +RUN: printf '\0\0\0\0\0\0\0\1' >> %t +RUN: printf '\0\0\0\0\0\0\0\2' >> %t +RUN: printf '\0\0\0\0\0\0\0\3' >> %t +RUN: printf '\0\0\0\0\0\0\0\6' >> %t +RUN: printf '\0\0\0\1\0\4\0\0' >> %t +RUN: printf '\0\0\0\2\0\4\0\0' >> %t + +RUN: printf '\0\0\0\3' >> %t +RUN: printf '\0\0\0\1' >> %t +RUN: printf '\0\0\0\0\0\0\0\1' >> %t +RUN: printf '\0\0\0\2\0\4\0\0' >> %t +RUN: printf '\0\0\0\1\0\4\0\0' >> %t + +RUN: printf '\0\0\0\3' >> %t +RUN: printf '\0\0\0\2' >> %t +RUN: printf '\0\0\0\0\0\0\0\02' >> %t +RUN: printf '\0\0\0\2\0\4\0\03' >> %t +RUN: printf '\0\0\0\1\0\4\0\10' >> %t + +RUN: printf '\0\0\0\0\0\0\0\023' >> %t +RUN: printf '\0\0\0\0\0\0\0\067' >> %t +RUN: printf '\0\0\0\0\0\0\0\101' >> %t +RUN: printf 'foobar' >> %t + +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s + +CHECK: Counters: +CHECK: foo: +CHECK: Hash: 0x0000000000000001 +CHECK: Counters: 1 +CHECK: Function count: 19 +CHECK: Block counts: [] +CHECK: bar: +CHECK: Hash: 0x0000000000000002 +CHECK: Counters: 2 +CHECK: Function count: 55 +CHECK: Block counts: [65] +CHECK: Functions shown: 2 +CHECK: Total functions: 2 +CHECK: Maximum function count: 55 +CHECK: Maximum internal block count: 65 diff --git a/test/tools/llvm-profdata/raw-64-bits-le.test b/test/tools/llvm-profdata/raw-64-bits-le.test new file mode 100644 index 000000000000..0e6853811ec4 --- /dev/null +++ b/test/tools/llvm-profdata/raw-64-bits-le.test @@ -0,0 +1,42 @@ +RUN: printf '\201rforpl\377' > %t +RUN: printf '\1\0\0\0\0\0\0\0' >> %t +RUN: printf '\2\0\0\0\0\0\0\0' >> %t +RUN: printf '\3\0\0\0\0\0\0\0' >> %t +RUN: printf '\6\0\0\0\0\0\0\0' >> %t +RUN: printf '\0\0\4\0\1\0\0\0' >> %t +RUN: printf '\0\0\4\0\2\0\0\0' >> %t + +RUN: printf '\3\0\0\0' >> %t +RUN: printf '\1\0\0\0' >> %t +RUN: printf '\1\0\0\0\0\0\0\0' >> %t +RUN: printf '\0\0\4\0\2\0\0\0' >> %t +RUN: printf '\0\0\4\0\1\0\0\0' >> %t + +RUN: printf '\03\0\0\0' >> %t +RUN: printf '\02\0\0\0' >> %t +RUN: printf '\02\0\0\0\0\0\0\0' >> %t +RUN: printf '\03\0\4\0\2\0\0\0' >> %t +RUN: printf '\10\0\4\0\1\0\0\0' >> %t + +RUN: printf '\023\0\0\0\0\0\0\0' >> %t +RUN: printf '\067\0\0\0\0\0\0\0' >> %t +RUN: printf '\101\0\0\0\0\0\0\0' >> %t +RUN: printf 'foobar' >> %t + +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s + +CHECK: Counters: +CHECK: foo: +CHECK: Hash: 0x0000000000000001 +CHECK: Counters: 1 +CHECK: Function count: 19 +CHECK: Block counts: [] +CHECK: bar: +CHECK: Hash: 0x0000000000000002 +CHECK: Counters: 2 +CHECK: Function count: 55 +CHECK: Block counts: [65] +CHECK: Functions shown: 2 +CHECK: Total functions: 2 +CHECK: Maximum function count: 55 +CHECK: Maximum internal block count: 65 diff --git a/test/tools/llvm-profdata/raw-magic-but-no-header.test b/test/tools/llvm-profdata/raw-magic-but-no-header.test new file mode 100644 index 000000000000..6db723c3e253 --- /dev/null +++ b/test/tools/llvm-profdata/raw-magic-but-no-header.test @@ -0,0 +1,6 @@ +RUN: printf '\201rforpl\377' > %t +RUN: not llvm-profdata show %t 2>&1 | FileCheck %s +RUN: printf '\377lprofr\201' > %t +RUN: not llvm-profdata show %t 2>&1 | FileCheck %s + +CHECK: error: {{.+}}: Invalid header diff --git a/test/tools/llvm-profdata/raw-two-profiles.test b/test/tools/llvm-profdata/raw-two-profiles.test new file mode 100644 index 000000000000..3260836ba666 --- /dev/null +++ b/test/tools/llvm-profdata/raw-two-profiles.test @@ -0,0 +1,64 @@ +RUN: printf '\201rforpl\377' > %t-foo.profraw +RUN: printf '\1\0\0\0\0\0\0\0' >> %t-foo.profraw +RUN: printf '\1\0\0\0\0\0\0\0' >> %t-foo.profraw +RUN: printf '\1\0\0\0\0\0\0\0' >> %t-foo.profraw +RUN: printf '\3\0\0\0\0\0\0\0' >> %t-foo.profraw +RUN: printf '\0\0\4\0\1\0\0\0' >> %t-foo.profraw +RUN: printf '\0\0\4\0\2\0\0\0' >> %t-foo.profraw + +RUN: printf '\3\0\0\0' >> %t-foo.profraw +RUN: printf '\1\0\0\0' >> %t-foo.profraw +RUN: printf '\1\0\0\0\0\0\0\0' >> %t-foo.profraw +RUN: printf '\0\0\4\0\2\0\0\0' >> %t-foo.profraw +RUN: printf '\0\0\4\0\1\0\0\0' >> %t-foo.profraw + +RUN: printf '\023\0\0\0\0\0\0\0' >> %t-foo.profraw +RUN: printf 'foo' >> %t-foo.profraw + +RUN: printf '\201rforpl\377' > %t-bar.profraw +RUN: printf '\1\0\0\0\0\0\0\0' >> %t-bar.profraw +RUN: printf '\1\0\0\0\0\0\0\0' >> %t-bar.profraw +RUN: printf '\2\0\0\0\0\0\0\0' >> %t-bar.profraw +RUN: printf '\3\0\0\0\0\0\0\0' >> %t-bar.profraw +RUN: printf '\0\0\6\0\1\0\0\0' >> %t-bar.profraw +RUN: printf '\0\0\6\0\2\0\0\0' >> %t-bar.profraw + +RUN: printf '\3\0\0\0' >> %t-bar.profraw +RUN: printf '\2\0\0\0' >> %t-bar.profraw +RUN: printf '\2\0\0\0\0\0\0\0' >> %t-bar.profraw +RUN: printf '\0\0\6\0\2\0\0\0' >> %t-bar.profraw +RUN: printf '\0\0\6\0\1\0\0\0' >> %t-bar.profraw + +RUN: printf '\067\0\0\0\0\0\0\0' >> %t-bar.profraw +RUN: printf '\101\0\0\0\0\0\0\0' >> %t-bar.profraw +RUN: printf 'bar' >> %t-bar.profraw + +Versions of the profiles that are padded to eight byte alignment. +RUN: cat %t-foo.profraw > %t-foo-padded.profraw +RUN: printf '\0\0\0\0\0' >> %t-foo-padded.profraw +RUN: cat %t-bar.profraw > %t-bar-padded.profraw +RUN: printf '\0\0\0\0\0' >> %t-bar-padded.profraw + +RUN: cat %t-foo.profraw %t-bar.profraw > %t-nopad.profraw +RUN: cat %t-foo-padded.profraw %t-bar.profraw > %t-pad-between.profraw +RUN: cat %t-foo-padded.profraw %t-bar-padded.profraw > %t-pad.profraw + +RUN: llvm-profdata show %t-nopad.profraw -all-functions -counts | FileCheck %s +RUN: llvm-profdata show %t-pad-between.profraw -all-functions -counts | FileCheck %s +RUN: llvm-profdata show %t-pad.profraw -all-functions -counts | FileCheck %s + +CHECK: Counters: +CHECK: foo: +CHECK: Hash: 0x0000000000000001 +CHECK: Counters: 1 +CHECK: Function count: 19 +CHECK: Block counts: [] +CHECK: bar: +CHECK: Hash: 0x0000000000000002 +CHECK: Counters: 2 +CHECK: Function count: 55 +CHECK: Block counts: [65] +CHECK: Functions shown: 2 +CHECK: Total functions: 2 +CHECK: Maximum function count: 55 +CHECK: Maximum internal block count: 65 diff --git a/test/tools/llvm-profdata/simple.test b/test/tools/llvm-profdata/simple.test new file mode 100644 index 000000000000..18741dd2ba86 --- /dev/null +++ b/test/tools/llvm-profdata/simple.test @@ -0,0 +1,77 @@ +RUN: llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/foo3-2.profdata -o %t +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=FOO3 +RUN: llvm-profdata merge %p/Inputs/foo3-2.profdata %p/Inputs/foo3-1.profdata -o %t +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=FOO3 +FOO3: foo: +FOO3: Counters: 3 +FOO3: Function count: 8 +FOO3: Block counts: [7, 6] +FOO3: Total functions: 1 +FOO3: Maximum function count: 8 +FOO3: Maximum internal block count: 7 + +RUN: llvm-profdata merge %p/Inputs/foo4-1.profdata %p/Inputs/foo4-2.profdata -o %t +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=FOO4 +RUN: llvm-profdata merge %p/Inputs/foo4-2.profdata %p/Inputs/foo4-1.profdata -o %t +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=FOO4 +FOO4: foo: +FOO4: Counters: 4 +FOO4: Function count: 18 +FOO4: Block counts: [28, 38, 48] +FOO4: Total functions: 1 +FOO4: Maximum function count: 18 +FOO4: Maximum internal block count: 48 + +RUN: llvm-profdata merge %p/Inputs/foo3bar3-1.profdata %p/Inputs/foo3bar3-2.profdata -o %t +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=FOO3BAR3 +RUN: llvm-profdata merge %p/Inputs/foo3bar3-2.profdata %p/Inputs/foo3bar3-1.profdata -o %t +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=FOO3BAR3 +FOO3BAR3: foo: +FOO3BAR3: Counters: 3 +FOO3BAR3: Function count: 19 +FOO3BAR3: Block counts: [22, 28] +FOO3BAR3: bar: +FOO3BAR3: Counters: 3 +FOO3BAR3: Function count: 36 +FOO3BAR3: Block counts: [42, 50] +FOO3BAR3: Total functions: 2 +FOO3BAR3: Maximum function count: 36 +FOO3BAR3: Maximum internal block count: 50 + +RUN: llvm-profdata merge %p/Inputs/empty.profdata %p/Inputs/foo3-1.profdata -o %t +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=FOO3EMPTY +FOO3EMPTY: foo: +FOO3EMPTY: Counters: 3 +FOO3EMPTY: Function count: 1 +FOO3EMPTY: Block counts: [2, 3] +FOO3EMPTY: Total functions: 1 +FOO3EMPTY: Maximum function count: 1 +FOO3EMPTY: Maximum internal block count: 3 + +RUN: llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/foo3bar3-1.profdata -o %t +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=FOO3FOO3BAR3 +FOO3FOO3BAR3: foo: +FOO3FOO3BAR3: Counters: 3 +FOO3FOO3BAR3: Function count: 3 +FOO3FOO3BAR3: Block counts: [5, 8] +FOO3FOO3BAR3: bar: +FOO3FOO3BAR3: Counters: 3 +FOO3FOO3BAR3: Function count: 7 +FOO3FOO3BAR3: Block counts: [11, 13] +FOO3FOO3BAR3: Total functions: 2 +FOO3FOO3BAR3: Maximum function count: 7 +FOO3FOO3BAR3: Maximum internal block count: 13 + +RUN: llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/bar3-1.profdata -o %t +RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=DISJOINT +DISJOINT: foo: +DISJOINT: Counters: 3 +DISJOINT: Function count: 1 +DISJOINT: Block counts: [2, 3] +DISJOINT: bar: +DISJOINT: Counters: 3 +DISJOINT: Function count: 1 +DISJOINT: Block counts: [2, 3] +DISJOINT: Total functions: 2 +DISJOINT: Maximum function count: 1 +DISJOINT: Maximum internal block count: 3 |