[llvm] abfff89 - [MC] Chain together fragments only if Subsections.size() > 1

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 27 10:35:50 PDT 2024


Author: Fangrui Song
Date: 2024-06-27T10:35:45-07:00
New Revision: abfff89b743584d2796000318198bf60d3622a1f

URL: https://github.com/llvm/llvm-project/commit/abfff89b743584d2796000318198bf60d3622a1f
DIFF: https://github.com/llvm/llvm-project/commit/abfff89b743584d2796000318198bf60d3622a1f.diff

LOG: [MC] Chain together fragments only if Subsections.size() > 1

and delete an unneeded setParent call.

Added: 
    

Modified: 
    llvm/lib/MC/MCAssembler.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp
index f8b7e4b60409b..205a9b2ffe8e8 100644
--- a/llvm/lib/MC/MCAssembler.cpp
+++ b/llvm/lib/MC/MCAssembler.cpp
@@ -866,22 +866,23 @@ void MCAssembler::layout(MCAsmLayout &Layout) {
     Sec->setLayoutOrder(i);
 
     // Chain together fragments from all subsections.
-    MCDummyFragment Dummy;
-    Dummy.setParent(Sec);
-    MCFragment *Tail = &Dummy;
-    for (auto &[_, List] : Sec->Subsections) {
-      if (!List.Head)
-        continue;
-      Tail->Next = List.Head;
-      Tail = List.Tail;
-    }
-    Sec->Subsections.clear();
-    Sec->Subsections.push_back({0u, {Dummy.getNext(), Tail}});
-    Sec->CurFragList = &Sec->Subsections[0].second;
+    if (Sec->Subsections.size() > 1) {
+      MCDummyFragment Dummy;
+      MCFragment *Tail = &Dummy;
+      for (auto &[_, List] : Sec->Subsections) {
+        if (!List.Head)
+          continue;
+        Tail->Next = List.Head;
+        Tail = List.Tail;
+      }
+      Sec->Subsections.clear();
+      Sec->Subsections.push_back({0u, {Dummy.getNext(), Tail}});
+      Sec->CurFragList = &Sec->Subsections[0].second;
 
-    unsigned FragmentIndex = 0;
-    for (MCFragment &Frag : *Sec)
-      Frag.setLayoutOrder(FragmentIndex++);
+      unsigned FragmentIndex = 0;
+      for (MCFragment &Frag : *Sec)
+        Frag.setLayoutOrder(FragmentIndex++);
+    }
   }
 
   // Layout until everything fits.


        


More information about the llvm-commits mailing list