]> granicus.if.org Git - llvm/commitdiff
[PGO] Use rsplit to parse value-data line in text profile file.
authorRong Xu <xur@google.com>
Fri, 6 May 2016 23:20:58 +0000 (23:20 +0000)
committerRong Xu <xur@google.com>
Fri, 6 May 2016 23:20:58 +0000 (23:20 +0000)
The value-data line is <PGOFuncName>:<Count_Value>. PGOFuncName might contain
':' for the internal linkage functions. We therefore need to use rsplit,
rather split, to extract the data from the line. This fixes the error when
merging a text profile file to an indexed profile file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268818 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ProfileData/InstrProfReader.cpp

index 03f20e877e5f1e80dac15507e56791fafd733d96..0828bb2c3fc980ef67caa47b56a326442c076a3e 100644 (file)
@@ -174,7 +174,7 @@ TextInstrProfReader::readValueProfileData(InstrProfRecord &Record) {
       std::vector<InstrProfValueData> CurrentValues;
       for (uint32_t V = 0; V < NumValueData; V++) {
         CHECK_LINE_END(Line);
-        std::pair<StringRef, StringRef> VD = Line->split(':');
+        std::pair<StringRef, StringRef> VD = Line->rsplit(':');
         uint64_t TakenCount, Value;
         if (VK == IPVK_IndirectCallTarget) {
           Symtab->addFuncName(VD.first);