llvm-profdata: Update to use the naive text format with function hash

This also uses line_iterator to simplify the parsing logic.

llvm-svn: 204210
diff --git a/llvm/test/tools/llvm-profdata/Inputs/bad-function-count.profdata b/llvm/test/tools/llvm-profdata/Inputs/bad-function-count.profdata
deleted file mode 100644
index 7d24762..0000000
--- a/llvm/test/tools/llvm-profdata/Inputs/bad-function-count.profdata
+++ /dev/null
@@ -1,2 +0,0 @@
-function_count_not 1count
-1
diff --git a/llvm/test/tools/llvm-profdata/Inputs/bad-hash.profdata b/llvm/test/tools/llvm-profdata/Inputs/bad-hash.profdata
new file mode 100644
index 0000000..faa6f40
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/Inputs/bad-hash.profdata
@@ -0,0 +1,4 @@
+function_count_not
+badhash
+1
+1
diff --git a/llvm/test/tools/llvm-profdata/Inputs/bar3-1.profdata b/llvm/test/tools/llvm-profdata/Inputs/bar3-1.profdata
index cb8b409..5486e9d 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/bar3-1.profdata
+++ b/llvm/test/tools/llvm-profdata/Inputs/bar3-1.profdata
@@ -1,4 +1,6 @@
-bar 3
+bar
+3
+3
 1
 2
 3
diff --git a/llvm/test/tools/llvm-profdata/Inputs/foo3-1.profdata b/llvm/test/tools/llvm-profdata/Inputs/foo3-1.profdata
index d6f9f64..14a6200 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/foo3-1.profdata
+++ b/llvm/test/tools/llvm-profdata/Inputs/foo3-1.profdata
@@ -1,4 +1,6 @@
-foo 3
+foo
+3
+3
 1
 2
 3
diff --git a/llvm/test/tools/llvm-profdata/Inputs/foo3-2.profdata b/llvm/test/tools/llvm-profdata/Inputs/foo3-2.profdata
index 94fd034..801846e 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/foo3-2.profdata
+++ b/llvm/test/tools/llvm-profdata/Inputs/foo3-2.profdata
@@ -1,4 +1,6 @@
-foo 3
+foo
+3
+3
 7
 5
 3
diff --git a/llvm/test/tools/llvm-profdata/Inputs/foo3bar3-1.profdata b/llvm/test/tools/llvm-profdata/Inputs/foo3bar3-1.profdata
index 85b702d..12157b9 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/foo3bar3-1.profdata
+++ b/llvm/test/tools/llvm-profdata/Inputs/foo3bar3-1.profdata
@@ -1,9 +1,13 @@
-foo 3
+foo
+3
+3
 2
 3
 5
 
-bar 3
+bar
+3
+3
 7
 11
 13
diff --git a/llvm/test/tools/llvm-profdata/Inputs/foo3bar3-2.profdata b/llvm/test/tools/llvm-profdata/Inputs/foo3bar3-2.profdata
index d652781..f1f10bd 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/foo3bar3-2.profdata
+++ b/llvm/test/tools/llvm-profdata/Inputs/foo3bar3-2.profdata
@@ -1,9 +1,13 @@
-foo 3
+foo
+3
+3
 17
 19
 23
 
-bar 3
+bar
+3
+3
 29
 31
 37
diff --git a/llvm/test/tools/llvm-profdata/Inputs/foo4-1.profdata b/llvm/test/tools/llvm-profdata/Inputs/foo4-1.profdata
index 4d69408..31d2a2c 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/foo4-1.profdata
+++ b/llvm/test/tools/llvm-profdata/Inputs/foo4-1.profdata
@@ -1,4 +1,6 @@
-foo 4
+foo
+4
+4
 11
 22
 33
diff --git a/llvm/test/tools/llvm-profdata/Inputs/foo4-2.profdata b/llvm/test/tools/llvm-profdata/Inputs/foo4-2.profdata
index 8d91d8b..01d8309 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/foo4-2.profdata
+++ b/llvm/test/tools/llvm-profdata/Inputs/foo4-2.profdata
@@ -1,4 +1,6 @@
-foo 4
+foo
+4
+4
 7
 6
 5
diff --git a/llvm/test/tools/llvm-profdata/Inputs/invalid-count-later.profdata b/llvm/test/tools/llvm-profdata/Inputs/invalid-count-later.profdata
index 5575df3..2b61c55 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/invalid-count-later.profdata
+++ b/llvm/test/tools/llvm-profdata/Inputs/invalid-count-later.profdata
@@ -1,2 +1,4 @@
-invalid_count 1
+invalid_count
+1
+1
 1later
diff --git a/llvm/test/tools/llvm-profdata/Inputs/overflow.profdata b/llvm/test/tools/llvm-profdata/Inputs/overflow.profdata
index bfb9a52..c9a9d69 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/overflow.profdata
+++ b/llvm/test/tools/llvm-profdata/Inputs/overflow.profdata
@@ -1,2 +1,4 @@
-overflow 1
+overflow
+1
+1
 9223372036854775808
diff --git a/llvm/test/tools/llvm-profdata/Inputs/three-words-long.profdata b/llvm/test/tools/llvm-profdata/Inputs/three-words-long.profdata
deleted file mode 100644
index a4d45fb..0000000
--- a/llvm/test/tools/llvm-profdata/Inputs/three-words-long.profdata
+++ /dev/null
@@ -1 +0,0 @@
-three words long
diff --git a/llvm/test/tools/llvm-profdata/errors.test b/llvm/test/tools/llvm-profdata/errors.test
index 6335ea9..6570d17 100644
--- a/llvm/test/tools/llvm-profdata/errors.test
+++ b/llvm/test/tools/llvm-profdata/errors.test
@@ -6,8 +6,8 @@
 RUN: not llvm-profdata %p/Inputs/foo3-1.profdata %p/Inputs/bar3-1.profdata 2>&1 | FileCheck %s --check-prefix=NAME
 NAME: error: {{.*}}: function name mismatch
 
-RUN: not llvm-profdata %p/Inputs/foo3-1.profdata %p/Inputs/foo4-1.profdata 2>&1 | FileCheck %s --check-prefix=COUNT
-COUNT: error: {{.*}}: function count mismatch
+RUN: not llvm-profdata %p/Inputs/foo3-1.profdata %p/Inputs/foo4-1.profdata 2>&1 | FileCheck %s --check-prefix=HASH
+HASH: error: {{.*}}: function hash mismatch
 
 RUN: not llvm-profdata %p/Inputs/overflow.profdata %p/Inputs/overflow.profdata 2>&1 | FileCheck %s --check-prefix=OVERFLOW
 OVERFLOW: error: {{.*}}: counter overflow
@@ -15,8 +15,5 @@
 RUN: not llvm-profdata %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: {{.*}}: invalid counter
 
-RUN: not llvm-profdata %p/Inputs/bad-function-count.profdata %p/Inputs/bad-function-count.profdata 2>&1 | FileCheck %s --check-prefix=BAD-FUNCTION-COUNT
-BAD-FUNCTION-COUNT: error: {{.*}}: bad function count
-
-RUN: not llvm-profdata %p/Inputs/three-words-long.profdata %p/Inputs/three-words-long.profdata 2>&1 | FileCheck %s --check-prefix=INVALID-DATA
-INVALID-DATA: error: {{.*}}: invalid data
+RUN: not llvm-profdata %p/Inputs/bad-hash.profdata %p/Inputs/bad-hash.profdata 2>&1 | FileCheck %s --check-prefix=BAD-HASH
+BAD-HASH: error: {{.*}}: bad function hash
diff --git a/llvm/test/tools/llvm-profdata/simple.test b/llvm/test/tools/llvm-profdata/simple.test
index 87073fa..7e375bf 100644
--- a/llvm/test/tools/llvm-profdata/simple.test
+++ b/llvm/test/tools/llvm-profdata/simple.test
@@ -1,13 +1,17 @@
 RUN: llvm-profdata %p/Inputs/foo3-1.profdata %p/Inputs/foo3-2.profdata 2>&1 | FileCheck %s --check-prefix=FOO3
 RUN: llvm-profdata %p/Inputs/foo3-2.profdata %p/Inputs/foo3-1.profdata 2>&1 | FileCheck %s --check-prefix=FOO3
-FOO3:      {{^foo 3$}}
+FOO3:      {{^foo$}}
+FOO3-NEXT: {{^3$}}
+FOO3-NEXT: {{^3$}}
 FOO3-NEXT: {{^8$}}
 FOO3-NEXT: {{^7$}}
 FOO3-NEXT: {{^6$}}
 
 RUN: llvm-profdata %p/Inputs/foo4-1.profdata %p/Inputs/foo4-2.profdata 2>&1 | FileCheck %s --check-prefix=FOO4
 RUN: llvm-profdata %p/Inputs/foo4-2.profdata %p/Inputs/foo4-1.profdata 2>&1 | FileCheck %s --check-prefix=FOO4
-FOO4:      {{^foo 4$}}
+FOO4:      {{^foo$}}
+FOO4-NEXT: {{^4$}}
+FOO4-NEXT: {{^4$}}
 FOO4-NEXT: {{^18$}}
 FOO4-NEXT: {{^28$}}
 FOO4-NEXT: {{^38$}}
@@ -15,11 +19,15 @@
 
 RUN: llvm-profdata %p/Inputs/foo3bar3-1.profdata %p/Inputs/foo3bar3-2.profdata 2>&1 | FileCheck %s --check-prefix=FOO3BAR3
 RUN: llvm-profdata %p/Inputs/foo3bar3-2.profdata %p/Inputs/foo3bar3-1.profdata 2>&1 | FileCheck %s --check-prefix=FOO3BAR3
-FOO3BAR3:      {{^foo 3$}}
+FOO3BAR3:      {{^foo$}}
+FOO3BAR3-NEXT: {{^3$}}
+FOO3BAR3-NEXT: {{^3$}}
 FOO3BAR3-NEXT: {{^19$}}
 FOO3BAR3-NEXT: {{^22$}}
 FOO3BAR3-NEXT: {{^28$}}
-FOO3BAR3:      {{^bar 3$}}
+FOO3BAR3:      {{^bar$}}
+FOO3BAR3-NEXT: {{^3$}}
+FOO3BAR3-NEXT: {{^3$}}
 FOO3BAR3-NEXT: {{^36$}}
 FOO3BAR3-NEXT: {{^42$}}
 FOO3BAR3-NEXT: {{^50$}}