[PATCH] D59311: [ELF] Print symbols ordered by profiled guided section layout with verbose.

Tiancong Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 13 11:24:19 PDT 2019


tcwang updated this revision to Diff 190457.
tcwang marked 4 inline comments as done.
tcwang added a comment.

Fixing the comments.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59311/new/

https://reviews.llvm.org/D59311

Files:
  lld/ELF/CallGraphSort.cpp
  lld/test/ELF/cgprofile-print.s


Index: lld/test/ELF/cgprofile-print.s
===================================================================
--- /dev/null
+++ lld/test/ELF/cgprofile-print.s
@@ -0,0 +1,37 @@
+# REQUIRES: x86
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
+# RUN: echo "A B 5" > %t.call_graph
+# RUN: echo "B C 50" >> %t.call_graph
+# RUN: echo "C D 40" >> %t.call_graph
+# RUN: echo "D B 10" >> %t.call_graph
+# RUN: ld.lld -e A %t --call-graph-ordering-file %t.call_graph -o %t2 --verbose | FileCheck %s
+
+# CHECK: Symbols ordered by call-chain clustering:
+# CHECK-NEXT: .text.B
+# CHECK-NEXT: .text.C
+# CHECK-NEXT: .text.D
+# CHECK-NEXT: .text.A
+
+.section    .text.A,"ax", at progbits
+.globl  A
+A:
+ nop
+
+.section    .text.B,"ax", at progbits
+.globl  B
+B:
+ nop
+
+.section    .text.C,"ax", at progbits
+.globl  C
+C:
+ nop
+
+.section    .text.D,"ax", at progbits
+.globl  D
+D:
+ nop
+
+
+
Index: lld/ELF/CallGraphSort.cpp
===================================================================
--- lld/ELF/CallGraphSort.cpp
+++ lld/ELF/CallGraphSort.cpp
@@ -226,6 +226,15 @@
     for (int SecIndex : C.Sections)
       OrderMap[Sections[SecIndex]] = CurOrder++;
 
+  if (errorHandler().Verbose) {
+    outs() << "Symbols ordered by call-chain clustering:\n";
+    // Print the symbols ordered by C3, in the order of increasing CurOrder
+    // Instead of sorting all the OrderMap, just repeat the loops above.
+    for (const Cluster &C : Clusters)
+      for (int SecIndex : C.Sections)
+        outs() << Sections[SecIndex]->Name << "\n";
+  }
+
   return OrderMap;
 }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59311.190457.patch
Type: text/x-patch
Size: 1577 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190313/c6657bb7/attachment.bin>


More information about the llvm-commits mailing list