[llvm-commits] [llvm] r140151 - /llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp

Devang Patel dpatel at apple.com
Tue Sep 20 10:43:14 PDT 2011


Author: dpatel
Date: Tue Sep 20 12:43:14 2011
New Revision: 140151

URL: http://llvm.org/viewvc/llvm-project?rev=140151&view=rev
Log:
Eliminate unnecessary copy of FileName from GCOVLines. 
GCOVLines is always accessed through a StringMap where the key is FileName.

Modified:
    llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp

Modified: llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp?rev=140151&r1=140150&r2=140151&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp (original)
+++ llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp Tue Sep 20 12:43:14 2011
@@ -167,18 +167,17 @@
     }
 
     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<uint32_t, 32> Lines;
   };
 
@@ -190,7 +189,7 @@
     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 @@
       uint32_t Len = 3;
       for (StringMap<GCOVLines *>::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 @@
       for (StringMap<GCOVLines *>::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]);
         }





More information about the llvm-commits mailing list