<div dir="ltr">This'll need a test case - and might be interesting to see how it looks independent of the other changes to LLVM (I'm guessing the cost of this change will depend on which side of D25434 it's observed, though) - also it should probably be on cfe-commits rather than llvm-commits.</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Oct 10, 2016 at 8:36 AM Dehao Chen <<a href="mailto:danielcdh@gmail.com">danielcdh@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">danielcdh created this revision.<br class="gmail_msg">
danielcdh added reviewers: dblaikie, echristo, davidxl.<br class="gmail_msg">
danielcdh added a subscriber: llvm-commits.<br class="gmail_msg">
Herald added a subscriber: mehdi_amini.<br class="gmail_msg">
<br class="gmail_msg">
SamplePGO binaries built with -gmlt to collect profile. The current -gmlt debug info is limited, and we need some additional info:<br class="gmail_msg">
<br class="gmail_msg">
- start line of all subprograms<br class="gmail_msg">
- linkage name of all subprograms<br class="gmail_msg">
- standalone subprograms (functions that has neither inlined nor been inlined)<br class="gmail_msg">
<br class="gmail_msg">
This patch adds these information to the -gmlt binary. The impact on speccpu2006 binary size (size increase comparing with -g0 binary, also includes data for -g binary, which does not change with this patch):<br class="gmail_msg">
<br class="gmail_msg">
  -gmlt(orig) -gmlt(patched) -g<br class="gmail_msg">
<br class="gmail_msg">
433.milc       4.68%       5.40%          19.73%<br class="gmail_msg">
444.namd       8.45%       8.93%          45.99%<br class="gmail_msg">
447.dealII     97.43%      115.21%        374.89%<br class="gmail_msg">
450.soplex     27.75%      31.88%         126.04%<br class="gmail_msg">
453.povray     21.81%      26.16%         92.03%<br class="gmail_msg">
470.lbm        0.60%       0.67%          1.96%<br class="gmail_msg">
482.sphinx3    5.77%       6.47%          26.17%<br class="gmail_msg">
400.perlbench  17.81%      19.43%         73.08%<br class="gmail_msg">
401.bzip2      3.73%       3.92%          12.18%<br class="gmail_msg">
403.gcc        31.75%      34.48%         122.75%<br class="gmail_msg">
429.mcf        0.78%       0.88%          3.89%<br class="gmail_msg">
445.gobmk      6.08%       7.92%          42.27%<br class="gmail_msg">
456.hmmer      10.36%      11.25%         35.23%<br class="gmail_msg">
458.sjeng      5.08%       5.42%          14.36%<br class="gmail_msg">
462.libquantum 1.71%       1.96%          6.36%<br class="gmail_msg">
464.h264ref    15.61%      16.56%         43.92%<br class="gmail_msg">
471.omnetpp    11.93%      15.84%         60.09%<br class="gmail_msg">
473.astar      3.11%       3.69%          14.18%<br class="gmail_msg">
483.xalancbmk  56.29%      81.63%         353.22%<br class="gmail_msg">
geomean        15.60%      18.30%         57.81%<br class="gmail_msg">
<br class="gmail_msg">
Debug info size change for -gmlt binary with this patch:<br class="gmail_msg">
<br class="gmail_msg">
433.milc       13.46%<br class="gmail_msg">
444.namd       5.35%<br class="gmail_msg">
447.dealII     18.21%<br class="gmail_msg">
450.soplex     14.68%<br class="gmail_msg">
453.povray     19.65%<br class="gmail_msg">
470.lbm        6.03%<br class="gmail_msg">
482.sphinx3    11.21%<br class="gmail_msg">
400.perlbench  8.91%<br class="gmail_msg">
401.bzip2      4.41%<br class="gmail_msg">
403.gcc        8.56%<br class="gmail_msg">
429.mcf        8.24%<br class="gmail_msg">
445.gobmk      29.47%<br class="gmail_msg">
456.hmmer      8.19%<br class="gmail_msg">
458.sjeng      6.05%<br class="gmail_msg">
462.libquantum 11.23%<br class="gmail_msg">
464.h264ref    5.93%<br class="gmail_msg">
471.omnetpp    31.89%<br class="gmail_msg">
473.astar      16.20%<br class="gmail_msg">
483.xalancbmk  44.62%<br class="gmail_msg">
geomean        16.83%<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
<a href="https://reviews.llvm.org/D25435" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D25435</a><br class="gmail_msg">
<br class="gmail_msg">
Files:<br class="gmail_msg">
  lib/CodeGen/CGDebugInfo.cpp<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Index: lib/CodeGen/CGDebugInfo.cpp<br class="gmail_msg">
===================================================================<br class="gmail_msg">
--- lib/CodeGen/CGDebugInfo.cpp<br class="gmail_msg">
+++ lib/CodeGen/CGDebugInfo.cpp<br class="gmail_msg">
@@ -2700,9 +2700,7 @@<br class="gmail_msg">
   // No need to replicate the linkage name if it isn't different from the<br class="gmail_msg">
   // subprogram name, no need to have it at all unless coverage is enabled or<br class="gmail_msg">
   // debug is set to more than just line tables.<br class="gmail_msg">
-  if (LinkageName == Name || (!CGM.getCodeGenOpts().EmitGcovArcs &&<br class="gmail_msg">
-                              !CGM.getCodeGenOpts().EmitGcovNotes &&<br class="gmail_msg">
-                              DebugKind <= codegenoptions::DebugLineTablesOnly))<br class="gmail_msg">
+  if (LinkageName == Name)<br class="gmail_msg">
     LinkageName = StringRef();<br class="gmail_msg">
<br class="gmail_msg">
   if (DebugKind >= codegenoptions::LimitedDebugInfo) {<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
</blockquote></div>