[PGO] Fix name encoding for ObjC-like functions
authorVedant Kumar <vsk@apple.com>
Mon, 28 Mar 2016 15:52:08 +0000 (15:52 +0000)
committerVedant Kumar <vsk@apple.com>
Mon, 28 Mar 2016 15:52:08 +0000 (15:52 +0000)
commite44e0be818ae53a6d60e96df1a04827f720847dc
treedda87fed2ba90589d2497ff5821ffe6c61888b99
parent43a8565be61a9e24997a6e9e971df47bbffbe6fd
[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).

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

llvm-svn: 264587
llvm/include/llvm/ProfileData/InstrProf.h
llvm/lib/ProfileData/InstrProf.cpp
llvm/unittests/ProfileData/InstrProfTest.cpp