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