[PATCH] D18516: [PGO] Fix name encoding for ObjC-like functions

Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 28 08:57:28 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL264587: [PGO] Fix name encoding for ObjC-like functions (authored by vedantk).

Changed prior to commit:
  http://reviews.llvm.org/D18516?vs=51792&id=51796#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D18516

Files:
  llvm/trunk/include/llvm/ProfileData/InstrProf.h
  llvm/trunk/lib/ProfileData/InstrProf.cpp
  llvm/trunk/unittests/ProfileData/InstrProfTest.cpp

Index: llvm/trunk/include/llvm/ProfileData/InstrProf.h
===================================================================
--- llvm/trunk/include/llvm/ProfileData/InstrProf.h
+++ llvm/trunk/include/llvm/ProfileData/InstrProf.h
@@ -151,6 +151,9 @@
   return "__llvm_profile_override_default_filename";
 }
 
+/// Return the marker used to separate PGO names during serialization.
+inline StringRef getInstrProfNameSeparator() { return "\01"; }
+
 /// Return the modified name for function \c F suitable to be
 /// used the key for profile lookup.
 std::string getPGOFuncName(const Function &F,
Index: llvm/trunk/lib/ProfileData/InstrProf.cpp
===================================================================
--- llvm/trunk/lib/ProfileData/InstrProf.cpp
+++ llvm/trunk/lib/ProfileData/InstrProf.cpp
@@ -160,7 +160,7 @@
                               bool doCompression, std::string &Result) {
   uint8_t Header[16], *P = Header;
   std::string UncompressedNameStrings =
-      join(NameStrs.begin(), NameStrs.end(), StringRef(" "));
+      join(NameStrs.begin(), NameStrs.end(), getInstrProfNameSeparator());
 
   unsigned EncLen = encodeULEB128(UncompressedNameStrings.length(), P);
   P += EncLen;
@@ -238,7 +238,7 @@
     }
     // Now parse the name strings.
     SmallVector<StringRef, 0> Names;
-    NameStrings.split(Names, ' ');
+    NameStrings.split(Names, getInstrProfNameSeparator());
     for (StringRef &Name : Names)
       Symtab.addFuncName(Name);
 
Index: llvm/trunk/unittests/ProfileData/InstrProfTest.cpp
===================================================================
--- llvm/trunk/unittests/ProfileData/InstrProfTest.cpp
+++ llvm/trunk/unittests/ProfileData/InstrProfTest.cpp
@@ -893,7 +893,7 @@
     OS << "func_" << I;
     FuncNames1.push_back(OS.str());
     str.clear();
-    OS << "fooooooooooooooo_" << I;
+    OS << "f oooooooooooooo_" << I;
     FuncNames1.push_back(OS.str());
     str.clear();
     OS << "BAR_" << I;
@@ -931,7 +931,7 @@
       StringRef R = Symtab.getFuncName(IndexedInstrProf::ComputeHash(FuncNames1[0]));
       ASSERT_EQ(StringRef("func_0"), R);
       R = Symtab.getFuncName(IndexedInstrProf::ComputeHash(FuncNames1[1]));
-      ASSERT_EQ(StringRef("fooooooooooooooo_0"), R);
+      ASSERT_EQ(StringRef("f oooooooooooooo_0"), R);
       for (int I = 0; I < 3; I++) {
         std::string N[4];
         N[0] = FuncNames1[2 * I];


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18516.51796.patch
Type: text/x-patch
Size: 2388 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160328/edfb3145/attachment.bin>


More information about the llvm-commits mailing list