diff options
| author | Vedant Kumar <vsk@apple.com> | 2016-03-28 20:12:07 +0000 |
|---|---|---|
| committer | Vedant Kumar <vsk@apple.com> | 2016-03-28 20:12:07 +0000 |
| commit | f20b6cec1c50d624fb5fb6a9003407be6e9f1bad (patch) | |
| tree | 72f1570255b05eba3bbcaac3faaf05b41c4b89f4 /llvm/test/tools | |
| parent | 0d026d9e9eb4fa1695dc94be43f02579f59bc696 (diff) | |
| download | bcm5719-llvm-f20b6cec1c50d624fb5fb6a9003407be6e9f1bad.tar.gz bcm5719-llvm-f20b6cec1c50d624fb5fb6a9003407be6e9f1bad.zip | |
Reapply "[PGO] Fix name encoding for ObjC-like functions"
Function names in ObjC can have spaces in them. This interacts poorly
with name compression, which uses spaces to separate PGO names. Fix the
issue by using a different separator and update a test.
I chose "\01" as the separator because 1) it's non-printable, 2) we
strip it from PGO names, and 3) it's the next natural choice once "\00"
is discarded (that one's overloaded).
This reverts the revert commit beaf3d18. What's changed?
- I fixed up the covmap-V2 binary format tests using a linux VM.
- I updated the expected counts in instrprof-comdat.h to account for
the fact that there have been bugfixes to clang coverage.
- I added an assert to make sure we don't get bitten by this again.
Differential Revision: http://reviews.llvm.org/D18516
llvm-svn: 264641
Diffstat (limited to 'llvm/test/tools')
| -rwxr-xr-x | llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux32l | bin | 29634 -> 29424 bytes | |||
| -rwxr-xr-x | llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux64l | bin | 2125077 -> 2124848 bytes | |||
| -rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/elf_binary_comdat.profdata | bin | 1040 -> 840 bytes | |||
| -rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/instrprof-comdat.h | 11 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-profdata/Inputs/c-general.profraw | bin | 1696 -> 1648 bytes | |||
| -rw-r--r-- | llvm/test/tools/llvm-profdata/raw-32-bits-be.test | 2 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-profdata/raw-32-bits-le.test | 2 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-profdata/raw-64-bits-be.test | 2 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-profdata/raw-64-bits-le.test | 2 |
9 files changed, 12 insertions, 7 deletions
diff --git a/llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux32l b/llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux32l Binary files differindex 624483bf6e3..6ea83e5d24e 100755 --- a/llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux32l +++ b/llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux32l diff --git a/llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux64l b/llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux64l Binary files differindex af4d39cedfb..9c6835cdff1 100755 --- a/llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux64l +++ b/llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux64l diff --git a/llvm/test/tools/llvm-cov/Inputs/elf_binary_comdat.profdata b/llvm/test/tools/llvm-cov/Inputs/elf_binary_comdat.profdata Binary files differindex 85667041e2c..ef80e56a884 100644 --- a/llvm/test/tools/llvm-cov/Inputs/elf_binary_comdat.profdata +++ b/llvm/test/tools/llvm-cov/Inputs/elf_binary_comdat.profdata diff --git a/llvm/test/tools/llvm-cov/Inputs/instrprof-comdat.h b/llvm/test/tools/llvm-cov/Inputs/instrprof-comdat.h index e1227167cd4..a701504e34b 100644 --- a/llvm/test/tools/llvm-cov/Inputs/instrprof-comdat.h +++ b/llvm/test/tools/llvm-cov/Inputs/instrprof-comdat.h @@ -13,7 +13,12 @@ template <class T> T FOO<T>::DoIt(T ti) { // HEADER: 2| [[@LINE]]|template t += I; // HEADER: 20| [[@LINE]]| t += I; if (I > ti / 2) // HEADER: 20| [[@LINE]]| if (I > ti t -= 1; // HEADER: 8| [[@LINE]]| t -= 1; - } // HEADER: 10| [[@LINE]]| } - // HEADER: 1| [[@LINE]]| - return t; // HEADER: 1| [[@LINE]]| return t; + } // HEADER: 20| [[@LINE]]| } + // HEADER: 2| [[@LINE]]| + return t; // HEADER: 2| [[@LINE]]| return t; } + +// To generate the binaries which correspond to this file, you must first +// compile a program with two calls to Foo<int>::DoIt(10) for each desired +// architecture. Collect a raw profile from any one of these binaries, index +// it, and check it in along with the executables. diff --git a/llvm/test/tools/llvm-profdata/Inputs/c-general.profraw b/llvm/test/tools/llvm-profdata/Inputs/c-general.profraw Binary files differindex 602838369a2..34448c17b70 100644 --- a/llvm/test/tools/llvm-profdata/Inputs/c-general.profraw +++ b/llvm/test/tools/llvm-profdata/Inputs/c-general.profraw diff --git a/llvm/test/tools/llvm-profdata/raw-32-bits-be.test b/llvm/test/tools/llvm-profdata/raw-32-bits-be.test index d3def18ef99..bc6ec022587 100644 --- a/llvm/test/tools/llvm-profdata/raw-32-bits-be.test +++ b/llvm/test/tools/llvm-profdata/raw-32-bits-be.test @@ -28,7 +28,7 @@ RUN: printf '\0\0\0\0\0\0\0\0' >> %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 '\7\0foo bar\0\0\0\0\0\0\0' >> %t +RUN: printf '\7\0foo\1bar\0\0\0\0\0\0\0' >> %t RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s diff --git a/llvm/test/tools/llvm-profdata/raw-32-bits-le.test b/llvm/test/tools/llvm-profdata/raw-32-bits-le.test index b19c74f01b6..5ee8b33df67 100644 --- a/llvm/test/tools/llvm-profdata/raw-32-bits-le.test +++ b/llvm/test/tools/llvm-profdata/raw-32-bits-le.test @@ -28,7 +28,7 @@ RUN: printf '\0\0\0\0\0\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 '\7\0foo bar\0\0\0\0\0\0\0' >> %t +RUN: printf '\7\0foo\1bar\0\0\0\0\0\0\0' >> %t RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s diff --git a/llvm/test/tools/llvm-profdata/raw-64-bits-be.test b/llvm/test/tools/llvm-profdata/raw-64-bits-be.test index cb59f9a2ff3..9778f062779 100644 --- a/llvm/test/tools/llvm-profdata/raw-64-bits-be.test +++ b/llvm/test/tools/llvm-profdata/raw-64-bits-be.test @@ -26,7 +26,7 @@ RUN: printf '\0\0\0\02\0\0\0\0' >> %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 '\7\0foo bar\0\0\0\0\0\0\0' >> %t +RUN: printf '\7\0foo\1bar\0\0\0\0\0\0\0' >> %t RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s diff --git a/llvm/test/tools/llvm-profdata/raw-64-bits-le.test b/llvm/test/tools/llvm-profdata/raw-64-bits-le.test index 86748b14938..670bdb3ba85 100644 --- a/llvm/test/tools/llvm-profdata/raw-64-bits-le.test +++ b/llvm/test/tools/llvm-profdata/raw-64-bits-le.test @@ -26,7 +26,7 @@ RUN: printf '\02\0\0\0\0\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 '\7\0foo bar\0\0\0\0\0\0\0' >> %t +RUN: printf '\7\0foo\1bar\0\0\0\0\0\0\0' >> %t RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s |

