From 865375ca7f68e60c0234916dd6bb365bb674bddb Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 20 Sep 2011 17:43:14 +0000 Subject: [PATCH] Eliminate unnecessary copy of FileName from GCOVLines. GCOVLines is always accessed through a StringMap where the key is FileName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140151 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Instrumentation/GCOVProfiling.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/Transforms/Instrumentation/GCOVProfiling.cpp b/lib/Transforms/Instrumentation/GCOVProfiling.cpp index 16262932936..e701f995785 100644 --- a/lib/Transforms/Instrumentation/GCOVProfiling.cpp +++ b/lib/Transforms/Instrumentation/GCOVProfiling.cpp @@ -167,18 +167,17 @@ namespace { } uint32_t length() { - return lengthOfGCOVString(Filename) + 2 + Lines.size(); + // FIXME: ??? What is the significance of 2 here ? + return 2 + Lines.size(); } private: friend class GCOVBlock; - GCOVLines(std::string Filename, raw_ostream *os) - : Filename(Filename) { + GCOVLines(raw_ostream *os) { this->os = os; } - std::string Filename; SmallVector Lines; }; @@ -190,7 +189,7 @@ namespace { GCOVLines &getFile(std::string Filename) { GCOVLines *&Lines = LinesByFile[Filename]; if (!Lines) { - Lines = new GCOVLines(Filename, os); + Lines = new GCOVLines(os); } return *Lines; } @@ -203,7 +202,7 @@ namespace { uint32_t Len = 3; for (StringMap::iterator I = LinesByFile.begin(), E = LinesByFile.end(); I != E; ++I) { - Len += I->second->length(); + Len = Len + lengthOfGCOVString(I->first()) + I->second->length(); } writeBytes(LinesTag, 4); @@ -212,7 +211,7 @@ namespace { for (StringMap::iterator I = LinesByFile.begin(), E = LinesByFile.end(); I != E; ++I) { write(0); - writeGCOVString(I->second->Filename); + writeGCOVString(I->first()); for (int i = 0, e = I->second->Lines.size(); i != e; ++i) { write(I->second->Lines[i]); } -- 2.34.1