summaryrefslogtreecommitdiff
path: root/lib/Transforms
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2011-09-20 17:43:14 +0000
committerDevang Patel <dpatel@apple.com>2011-09-20 17:43:14 +0000
commit865375ca7f68e60c0234916dd6bb365bb674bddb (patch)
tree96b5d3876b3a77f1de662f2b8886e1f540f6fccd /lib/Transforms
parentec6f2559fe1e257d221c9b4ce6c32584f7cc99b2 (diff)
downloadllvm-865375ca7f68e60c0234916dd6bb365bb674bddb.tar.gz
llvm-865375ca7f68e60c0234916dd6bb365bb674bddb.tar.bz2
llvm-865375ca7f68e60c0234916dd6bb365bb674bddb.tar.xz
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
Diffstat (limited to 'lib/Transforms')
-rw-r--r--lib/Transforms/Instrumentation/GCOVProfiling.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/Transforms/Instrumentation/GCOVProfiling.cpp b/lib/Transforms/Instrumentation/GCOVProfiling.cpp
index 1626293293..e701f99578 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<uint32_t, 32> 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<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 @@ namespace {
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]);
}