[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