diff options
author | Justin Bogner <mail@justinbogner.com> | 2014-03-21 17:46:22 +0000 |
---|---|---|
committer | Justin Bogner <mail@justinbogner.com> | 2014-03-21 17:46:22 +0000 |
commit | b9bd7f85a76263e6092198435b59b85a1b65aa0f (patch) | |
tree | 70639306072c6328a0bfdd28606e0e30684a7f22 /llvm/test/tools/llvm-profdata | |
parent | c07cc8f370704dc28db6d8e75ab9c5a9dfbca9c2 (diff) | |
download | bcm5719-llvm-b9bd7f85a76263e6092198435b59b85a1b65aa0f.tar.gz bcm5719-llvm-b9bd7f85a76263e6092198435b59b85a1b65aa0f.zip |
ProfileData: Introduce InstrProfWriter using the naive text format
This isn't a format we'll want to write out in practice, but moving it
to the writer library simplifies llvm-profdata and isolates it from
further changes to the format.
This also allows us to update the tests to not rely on the text output
format.
llvm-svn: 204489
Diffstat (limited to 'llvm/test/tools/llvm-profdata')
-rw-r--r-- | llvm/test/tools/llvm-profdata/errors.test | 20 | ||||
-rw-r--r-- | llvm/test/tools/llvm-profdata/simple.test | 97 |
2 files changed, 72 insertions, 45 deletions
diff --git a/llvm/test/tools/llvm-profdata/errors.test b/llvm/test/tools/llvm-profdata/errors.test index afac7a4dec1..487da74b86b 100644 --- a/llvm/test/tools/llvm-profdata/errors.test +++ b/llvm/test/tools/llvm-profdata/errors.test @@ -1,19 +1,11 @@ -RUN: not llvm-profdata merge %p/Inputs/empty.profdata %p/Inputs/foo3-1.profdata 2>&1 | FileCheck %s --check-prefix=LENGTH -RUN: not llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/foo3bar3-1.profdata 2>&1 | FileCheck %s --check-prefix=LENGTH -RUN: not llvm-profdata merge %p/Inputs/foo4-1.profdata %p/Inputs/empty.profdata 2>&1 | FileCheck %s --check-prefix=LENGTH -LENGTH: error: Number of instrumented functions differ +RUN: llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/foo4-1.profdata -o /dev/null 2>&1 | FileCheck %s --check-prefix=HASH +HASH: foo4-1.profdata: foo: Function hash mismatch -RUN: not llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/bar3-1.profdata 2>&1 | FileCheck %s --check-prefix=NAME -NAME: error: Function name mismatch, foo != bar - -RUN: not llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/foo4-1.profdata 2>&1 | FileCheck %s --check-prefix=HASH -HASH: error: Function hash mismatch for foo - -RUN: not llvm-profdata merge %p/Inputs/overflow.profdata %p/Inputs/overflow.profdata 2>&1 | FileCheck %s --check-prefix=OVERFLOW -OVERFLOW: error: Counter overflow for overflow +RUN: llvm-profdata merge %p/Inputs/overflow.profdata %p/Inputs/overflow.profdata -o /dev/null 2>&1 | FileCheck %s --check-prefix=OVERFLOW +OVERFLOW: overflow.profdata: overflow: Counter overflow RUN: not llvm-profdata merge %p/Inputs/invalid-count-later.profdata %p/Inputs/invalid-count-later.profdata 2>&1 | FileCheck %s --check-prefix=INVALID-COUNT-LATER -INVALID-COUNT-LATER: error: {{.*}}: Malformed profile data +INVALID-COUNT-LATER: error: {{.*}}invalid-count-later.profdata: Malformed profile data RUN: not llvm-profdata merge %p/Inputs/bad-hash.profdata %p/Inputs/bad-hash.profdata 2>&1 | FileCheck %s --check-prefix=BAD-HASH -BAD-HASH: error: {{.*}}: Malformed profile data +BAD-HASH: error: {{.*}}bad-hash.profdata: Malformed profile data diff --git a/llvm/test/tools/llvm-profdata/simple.test b/llvm/test/tools/llvm-profdata/simple.test index 74ff5e60273..5ef38d447e7 100644 --- a/llvm/test/tools/llvm-profdata/simple.test +++ b/llvm/test/tools/llvm-profdata/simple.test @@ -1,33 +1,68 @@ -RUN: llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/foo3-2.profdata 2>&1 | FileCheck %s --check-prefix=FOO3 -RUN: llvm-profdata merge %p/Inputs/foo3-2.profdata %p/Inputs/foo3-1.profdata 2>&1 | FileCheck %s --check-prefix=FOO3 -FOO3: {{^foo$}} -FOO3-NEXT: {{^3$}} -FOO3-NEXT: {{^3$}} -FOO3-NEXT: {{^8$}} -FOO3-NEXT: {{^7$}} -FOO3-NEXT: {{^6$}} +RUN: llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/foo3-2.profdata 2>&1 | llvm-profdata show - -all-functions -counts | FileCheck %s --check-prefix=FOO3 +RUN: llvm-profdata merge %p/Inputs/foo3-2.profdata %p/Inputs/foo3-1.profdata 2>&1 | llvm-profdata show - -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 2>&1 | FileCheck %s --check-prefix=FOO4 -RUN: llvm-profdata merge %p/Inputs/foo4-2.profdata %p/Inputs/foo4-1.profdata 2>&1 | FileCheck %s --check-prefix=FOO4 -FOO4: {{^foo$}} -FOO4-NEXT: {{^4$}} -FOO4-NEXT: {{^4$}} -FOO4-NEXT: {{^18$}} -FOO4-NEXT: {{^28$}} -FOO4-NEXT: {{^38$}} -FOO4-NEXT: {{^48$}} +RUN: llvm-profdata merge %p/Inputs/foo4-1.profdata %p/Inputs/foo4-2.profdata 2>&1 | llvm-profdata show - -all-functions -counts | FileCheck %s --check-prefix=FOO4 +RUN: llvm-profdata merge %p/Inputs/foo4-2.profdata %p/Inputs/foo4-1.profdata 2>&1 | llvm-profdata show - -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 2>&1 | FileCheck %s --check-prefix=FOO3BAR3 -RUN: llvm-profdata merge %p/Inputs/foo3bar3-2.profdata %p/Inputs/foo3bar3-1.profdata 2>&1 | FileCheck %s --check-prefix=FOO3BAR3 -FOO3BAR3: {{^foo$}} -FOO3BAR3-NEXT: {{^3$}} -FOO3BAR3-NEXT: {{^3$}} -FOO3BAR3-NEXT: {{^19$}} -FOO3BAR3-NEXT: {{^22$}} -FOO3BAR3-NEXT: {{^28$}} -FOO3BAR3: {{^bar$}} -FOO3BAR3-NEXT: {{^3$}} -FOO3BAR3-NEXT: {{^3$}} -FOO3BAR3-NEXT: {{^36$}} -FOO3BAR3-NEXT: {{^42$}} -FOO3BAR3-NEXT: {{^50$}} +RUN: llvm-profdata merge %p/Inputs/foo3bar3-1.profdata %p/Inputs/foo3bar3-2.profdata 2>&1 | llvm-profdata show - -all-functions -counts | FileCheck %s --check-prefix=FOO3BAR3 +RUN: llvm-profdata merge %p/Inputs/foo3bar3-2.profdata %p/Inputs/foo3bar3-1.profdata 2>&1 | llvm-profdata show - -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 2>&1 | llvm-profdata show - -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 2>&1 | llvm-profdata show - -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 2>&1 | llvm-profdata show - -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 |