From 8b8ec99047cd22fc8c8155ac6cb5fe9cd2146162 Mon Sep 17 00:00:00 2001 From: Manman Ren Date: Sat, 15 Feb 2014 01:29:02 +0000 Subject: [PATCH] PGO: fix a bug in parsing pgo data. When a function has a single counter, we will offset the pointer by 1 when parsing the next function. If a function has multiple counters, we are okay after skipping rest of the counters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201456 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CodeGenPGO.cpp | 2 +- test/CodeGen/Inputs/instr-profile.pgodata | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/CodeGen/CodeGenPGO.cpp b/lib/CodeGen/CodeGenPGO.cpp index d7c4709612..5475342ecd 100644 --- a/lib/CodeGen/CodeGenPGO.cpp +++ b/lib/CodeGen/CodeGenPGO.cpp @@ -72,7 +72,7 @@ PGOProfileData::PGOProfileData(CodeGenModule &CGM, std::string Path) ReportBadPGOData(CGM, "pgo-data file has bad count value"); return; } - CurPtr = EndPtr + 1; + CurPtr = EndPtr; // Point to '\n'. FunctionCounts[MangledName] = Count; MaxCount = Count > MaxCount ? Count : MaxCount; diff --git a/test/CodeGen/Inputs/instr-profile.pgodata b/test/CodeGen/Inputs/instr-profile.pgodata index 578a6d24e5..0eaea30ae2 100644 --- a/test/CodeGen/Inputs/instr-profile.pgodata +++ b/test/CodeGen/Inputs/instr-profile.pgodata @@ -116,6 +116,9 @@ big_switch 19 2 2 +issue_with_one_counter 1 +0 + boolean_operators 10 1 100 -- 2.40.0