llvm-project/llvm
Vedant Kumar 86705ba5b1 Reapply (2x) "[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).

What's changed since the original commit?

- I fixed up the covmap-V2 binary format tests using a linux VM.
- I weakened the CHECK lines in instrprof-comdat.h to account for the
  fact that there have been bugfixes to clang coverage. These will be
  fixed up in a follow-up.
- I added an assert to make sure we don't get bitten by this again.
- I constructed the c-general.profraw file without name compression
  enabled to appease some bots.

Differential Revision: http://reviews.llvm.org/D18516

llvm-svn: 264658
2016-03-28 21:06:42 +00:00
..
bindings bindings/go: reinstate TargetMachine.TargetData 2016-03-15 05:04:06 +00:00
cmake cmake: include what you use 2016-03-08 18:56:00 +00:00
docs docs: Try to remove weird linebreak from generated html. 2016-03-28 21:00:21 +00:00
examples [Kaleidoscope] Rename Error -> LogError in Chapters 2-5. 2016-03-25 17:41:26 +00:00
include Reapply (2x) "[PGO] Fix name encoding for ObjC-like functions" 2016-03-28 21:06:42 +00:00
lib Reapply (2x) "[PGO] Fix name encoding for ObjC-like functions" 2016-03-28 21:06:42 +00:00
projects Remove autoconf support 2016-01-26 21:29:08 +00:00
resources
test Reapply (2x) "[PGO] Fix name encoding for ObjC-like functions" 2016-03-28 21:06:42 +00:00
tools Add an IR Verifier check for orphaned DICompileUnits. 2016-03-28 21:06:26 +00:00
unittests Reapply (2x) "[PGO] Fix name encoding for ObjC-like functions" 2016-03-28 21:06:42 +00:00
utils Submitted new file with wrong line endings. Correcting... 2016-03-28 19:06:17 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt dos2unix CMakeLists.txt 2016-03-28 18:19:32 +00:00
CODE_OWNERS.TXT [lanai] Add Lanai backend. 2016-03-28 13:09:54 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
configure Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.