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