[lld] 3deb82c - [ELF] Adjust getOutputSectionName prefix order

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 15 00:19:04 PST 2021


Author: Fangrui Song
Date: 2021-12-15T00:18:58-08:00
New Revision: 3deb82cd072bd4bb6172ece5e6d01ea6600dc3a8

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

LOG: [ELF] Adjust getOutputSectionName prefix order

Sorting the prefixes by decreasing frequency can improve performance.
.gcc_except_table is relatively frequent, so move it ahead.
.ctors and .dtors mostly disappear and should be the last.

Added: 
    

Modified: 
    lld/ELF/LinkerScript.cpp

Removed: 
    


################################################################################
diff  --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp
index 3a7228453f18..e8aad25c9b68 100644
--- a/lld/ELF/LinkerScript.cpp
+++ b/lld/ELF/LinkerScript.cpp
@@ -101,9 +101,9 @@ static StringRef getOutputSectionName(const InputSectionBase *s) {
         return v;
 
   for (StringRef v :
-       {".text", ".rodata", ".data.rel.ro", ".data", ".bss.rel.ro", ".bss",
-        ".init_array", ".fini_array", ".ctors", ".dtors", ".tbss",
-        ".gcc_except_table", ".tdata", ".ARM.exidx", ".ARM.extab"})
+       {".text", ".data.rel.ro", ".data", ".rodata", ".bss.rel.ro", ".bss",
+        ".gcc_except_table", ".init_array", ".fini_array", ".tbss", ".tdata",
+        ".ARM.exidx", ".ARM.extab", ".ctors", ".dtors"})
     if (isSectionPrefix(v, s->name))
       return v;
 


        


More information about the llvm-commits mailing list