[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