diff --git a/lib/Target/ELFTargetAsmInfo.cpp b/lib/Target/ELFTargetAsmInfo.cpp
index 82ac847..9ffc72d 100644
--- a/lib/Target/ELFTargetAsmInfo.cpp
+++ b/lib/Target/ELFTargetAsmInfo.cpp
@@ -148,7 +148,7 @@
   return getReadOnlySection_();
 }
 
-std::string ELFTargetAsmInfo::PrintSectionFlags(unsigned flags) const {
+std::string ELFTargetAsmInfo::printSectionFlags(unsigned flags) const {
   std::string Flags = ",\"";
 
   if (!(flags & SectionFlags::Debug))
diff --git a/lib/Target/Sparc/SparcTargetAsmInfo.cpp b/lib/Target/Sparc/SparcTargetAsmInfo.cpp
index c81b9e1..afa5327 100644
--- a/lib/Target/Sparc/SparcTargetAsmInfo.cpp
+++ b/lib/Target/Sparc/SparcTargetAsmInfo.cpp
@@ -27,9 +27,9 @@
   CStringSection=".rodata.str";
 }
 
-std::string SparcELFTargetAsmInfo::PrintSectionFlags(unsigned flags) const {
+std::string SparcELFTargetAsmInfo::printSectionFlags(unsigned flags) const {
   if (flags & SectionFlags::Mergeable)
-    return ELFTargetAsmInfo::PrintSectionFlags(flags);
+    return ELFTargetAsmInfo::printSectionFlags(flags);
 
   std::string Flags;
   if (!(flags & SectionFlags::Debug))
diff --git a/lib/Target/Sparc/SparcTargetAsmInfo.h b/lib/Target/Sparc/SparcTargetAsmInfo.h
index 253a5d7..1af5d80 100644
--- a/lib/Target/Sparc/SparcTargetAsmInfo.h
+++ b/lib/Target/Sparc/SparcTargetAsmInfo.h
@@ -25,7 +25,7 @@
   struct SparcELFTargetAsmInfo : public ELFTargetAsmInfo {
     explicit SparcELFTargetAsmInfo(const TargetMachine &TM);
 
-    std::string PrintSectionFlags(unsigned flags) const;
+    std::string printSectionFlags(unsigned flags) const;
   };
 
 } // namespace llvm
diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp
index 9bc0b40..1ef2182 100644
--- a/lib/Target/TargetAsmInfo.cpp
+++ b/lib/Target/TargetAsmInfo.cpp
@@ -291,7 +291,7 @@
   // If section is named we need to switch into it via special '.section'
   // directive and also append funky flags. Otherwise - section name is just
   // some magic assembler directive.
-  return getSwitchToSectionDirective() + S->Name + PrintSectionFlags(S->Flags);
+  return getSwitchToSectionDirective() + S->Name + getSectionFlags(S->Flags);
 }
 
 // Lame default implementation. Calculate the section name for global.
@@ -376,3 +376,16 @@
 
   return &S;
 }
+
+const std::string&
+TargetAsmInfo::getSectionFlags(unsigned Flags) const {
+  SectionFlags::FlagsStringsMapType::iterator I = FlagsStrings.find(Flags);
+
+  // We didn't print these flags yet, print and save them to map. This reduces
+  // amount of heap trashing due to std::string construction / concatenation.
+  if (I == FlagsStrings.end())
+    I = FlagsStrings.insert(std::make_pair(Flags,
+                                           printSectionFlags(Flags))).first;
+
+  return I->second;
+}
diff --git a/lib/Target/X86/X86TargetAsmInfo.cpp b/lib/Target/X86/X86TargetAsmInfo.cpp
index 984c6b2..178aec0 100644
--- a/lib/Target/X86/X86TargetAsmInfo.cpp
+++ b/lib/Target/X86/X86TargetAsmInfo.cpp
@@ -404,7 +404,7 @@
   }
 }
 
-std::string X86COFFTargetAsmInfo::PrintSectionFlags(unsigned flags) const {
+std::string X86COFFTargetAsmInfo::printSectionFlags(unsigned flags) const {
   std::string Flags = ",\"";
 
   if (flags & SectionFlags::Code)
diff --git a/lib/Target/X86/X86TargetAsmInfo.h b/lib/Target/X86/X86TargetAsmInfo.h
index 0c30545..d7e11e0 100644
--- a/lib/Target/X86/X86TargetAsmInfo.h
+++ b/lib/Target/X86/X86TargetAsmInfo.h
@@ -52,7 +52,7 @@
                                            bool Global) const;
     virtual std::string UniqueSectionForGlobal(const GlobalValue* GV,
                                                SectionKind::Kind kind) const;
-    virtual std::string PrintSectionFlags(unsigned flags) const;
+    virtual std::string printSectionFlags(unsigned flags) const;
   protected:
     const X86TargetMachine *X86TM;
   };
