[PATCH] D45227: Instead of using std::copy, clear the vector first and add new elements. NFC.

Rui Ueyama via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 3 13:00:23 PDT 2018


ruiu created this revision.
ruiu added a reviewer: pcc.
Herald added subscribers: arichardson, emaste.
Herald added a reviewer: espindola.

Instead of using std::copy, clear the vector first and add new elements. NFC.


https://reviews.llvm.org/D45227

Files:
  lld/ELF/Writer.cpp


Index: lld/ELF/Writer.cpp
===================================================================
--- lld/ELF/Writer.cpp
+++ lld/ELF/Writer.cpp
@@ -1137,24 +1137,23 @@
   // of the second block of cold code can call the hot code without a thunk. So
   // we effectively double the amount of code that could potentially call into
   // the hot code without a thunk.
-  size_t UnorderedInsPt = 0;
+  size_t InsPt = 0;
   if (Target->ThunkSectionSpacing && !OrderedSections.empty()) {
     uint64_t UnorderedPos = 0;
-    for (; UnorderedInsPt != UnorderedSections.size(); ++UnorderedInsPt) {
-      UnorderedPos += UnorderedSections[UnorderedInsPt]->getSize();
+    for (; InsPt != UnorderedSections.size(); ++InsPt) {
+      UnorderedPos += UnorderedSections[InsPt]->getSize();
       if (UnorderedPos > UnorderedSize / 2)
         break;
     }
   }
 
-  std::copy(UnorderedSections.begin(),
-            UnorderedSections.begin() + UnorderedInsPt, ISD->Sections.begin());
-  std::vector<InputSection *>::iterator SectionsPos =
-      ISD->Sections.begin() + UnorderedInsPt;
+  ISD->Sections.clear();
+  for (InputSection *IS : makeArrayRef(UnorderedSections).slice(0, InsPt))
+    ISD->Sections.push_back(IS);
   for (std::pair<InputSection *, int> P : OrderedSections)
-    *SectionsPos++ = P.first;
-  std::copy(UnorderedSections.begin() + UnorderedInsPt, UnorderedSections.end(),
-            SectionsPos);
+    ISD->Sections.push_back(P.first);
+  for (InputSection *IS : makeArrayRef(UnorderedSections).slice(InsPt))
+    ISD->Sections.push_back(IS);
 }
 
 static void sortSection(OutputSection *Sec,


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45227.140849.patch
Type: text/x-patch
Size: 1603 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180403/f42d273c/attachment.bin>


More information about the llvm-commits mailing list