<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Nice catch!  r296566<div class=""><br class=""></div><div class="">— </div><div class="">Mehdi</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 28, 2017, at 6:18 PM, Sean Silva <<a href="mailto:chisophugis@gmail.com" class="">chisophugis@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Thanks for adding this, one comment inline:<br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Feb 28, 2017 at 2:29 PM, Mehdi Amini via llvm-commits<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">Author: mehdi_amini<br class="">Date: Tue Feb 28 16:29:43 2017<br class="">New Revision: 296530<br class=""><br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project?rev=296530&view=rev" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project?rev=296530&view=rev</a><br class="">Log:<br class="">Add LLD "Improve Code Layout" projects to the list of Open Projects<br class=""><br class="">Modified:<br class="">   <span class="Apple-converted-space"> </span>www/trunk/OpenProjects.html<br class=""><br class="">Modified: www/trunk/OpenProjects.html<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/www/trunk/OpenProjects.html?rev=296530&r1=296529&r2=296530&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/www/trunk/<wbr class="">OpenProjects.html?rev=296530&<wbr class="">r1=296529&r2=296530&view=diff</a><br class="">==============================<wbr class="">==============================<wbr class="">==================<br class="">--- www/trunk/OpenProjects.html (original)<br class="">+++ www/trunk/OpenProjects.html Tue Feb 28 16:29:43 2017<br class="">@@ -42,6 +42,11 @@<br class="">           LLDB public API</a><br class="">       </li><br class="">     </ul><br class="">+    <ul><a href="<a href="http://lldb.llvm.org/" rel="noreferrer" target="_blank" class="">http://lldb.llvm.org/</a>"><wbr class="">LLD</a><br class=""></blockquote><div class=""><br class=""></div><div class="">s/lldb/lld/ :)</div><div class=""><br class=""></div><div class="">-- Sean Silva</div><div class=""> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">+      <li><a href="#lld_layout">Improve Code Layout</a><br class="">+      </li><br class="">+    </ul><br class="">+<br class="">   </li><br class="">   <li><a href="#what">What is this?</a></li><br class="">   <li><a href="#subprojects">LLVM Subprojects: Clang and more</a></li><br class="">@@ -436,6 +441,57 @@ Welcome prospective Google Summer of Cod<br class=""> </div><br class=""><br class=""> <!-- ******************************<wbr class="">******************************<wbr class="">*********** --><br class="">+<div class="www_subsection"><br class="">+  <a>LLD</a><br class="">+</div><br class="">+<!-- ******************************<wbr class="">******************************<wbr class="">*********** --><br class="">+<br class="">+<!-- ******************************<wbr class="">******************************<wbr class="">*********** --><br class="">+<div class="www_subsubsection"><br class="">+  <a name="lld_layout">Improve Code Layout</a><br class="">+</div><br class="">+<!-- ******************************<wbr class="">******************************<wbr class="">*********** --><br class="">+<br class="">+<div class="www_text"><br class="">+  <p><b>Description of the project: </b><br class="">+       The goal for the project is trying to improve the layout/performances of the<br class="">+       generated executable. The primary object format considered for the project<br class="">+       is ELF but this can be extended to other object formats. The project will<br class="">+       touch both LLVM and lld.<br class="">+       <ul><br class="">+               <li>Warm-up: lld already provides an option to (--symbol-ordering file)<br class="">+                       which takes a symbol ordering file (presumably collected from a<br class="">+                       profiler) and builds a layout. This aims to reduce startup times. It<br class="">+                       would be nice to provide scripts to profile the applications/process<br class="">+                       various profilers output to produce an order file/evaluate the<br class="">+                       impact of the feature (as it has been tested only on a small class<br class="">+                       of applications). There's already some work in the area but nothing<br class="">+                       has been integrated in the LLVM build system for ELF. Ideally a<br class="">+                       motivated student would do the benchmarking/analysis before the GSoC<br class="">+                       starts to familiarize with the problem.</li><br class="">+               <li>The meat: Use/extend profile informations generated by LLVM to help<br class="">+                       the linker laying out functions. An obvious way (what gcc uses, [1])<br class="">+                       is to pass values to the linker using special `.note` sections. The<br class="">+                       linker then can reconstruct the call graph and apply an algorithm<br class="">+                       like the one described in [2] (this is just a starting point, other<br class="">+                       alternatives can be explored).</li><br class="">+       </ul><br class="">+  </p><br class="">+  <p><br class="">+       Possible extension: Xray can be used to provide data (it's unclear whether<br class="">+       this is feasible easily, see David's comment in [3]).<br class="">+  </p><br class="">+  <p><b>Contact Person:</b>Davide Italiano</p><br class="">+<br class="">+  <ul><br class="">+    <li>[1]<span class="Apple-converted-space"> </span><a href="http://sourceware.org/ml/binutils/2011-03/msg00043.html" rel="noreferrer" target="_blank" class="">http://sourceware.org/ml/<wbr class="">binutils/2011-03/msg00043.html</a><wbr class=""></li><br class="">+    <li>[2]<span class="Apple-converted-space"> </span><a href="http://dl.acm.org/citation.cfm?id=93550" rel="noreferrer" target="_blank" class="">http://dl.acm.org/citation.<wbr class="">cfm?id=93550</a></li><br class="">+    <li>[3]<span class="Apple-converted-space"> </span><a href="http://lists.llvm.org/pipermail/llvm-dev/2017-January/109114.html" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/<wbr class="">pipermail/llvm-dev/2017-<wbr class="">January/109114.html</a></li><br class="">+  </ul><br class="">+</div><br class="">+<br class="">+<br class="">+<!-- ******************************<wbr class="">******************************<wbr class="">*********** --><br class=""> <div class="www_sectiontitle"><br class="">   <a name="what">What is this?</a><br class=""> </div><br class=""><br class=""><br class="">______________________________<wbr class="">_________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/<wbr class="">mailman/listinfo/llvm-commits</a></blockquote></div></div></div></div></blockquote></div><br class=""></div></body></html>