[www] r325636 - open projects: move LLVM gsoc'18 projects out od LLDB section

Nuno Lopes via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 20 14:39:04 PST 2018


Author: nlopes
Date: Tue Feb 20 14:39:04 2018
New Revision: 325636

URL: http://llvm.org/viewvc/llvm-project?rev=325636&view=rev
Log:
open projects: move LLVM gsoc'18 projects out od LLDB section

Modified:
    www/trunk/OpenProjects.html

Modified: www/trunk/OpenProjects.html
URL: http://llvm.org/viewvc/llvm-project/www/trunk/OpenProjects.html?rev=325636&r1=325635&r2=325636&view=diff
==============================================================================
--- www/trunk/OpenProjects.html (original)
+++ www/trunk/OpenProjects.html Tue Feb 20 14:39:04 2018
@@ -188,6 +188,91 @@ main <a href="https://developers.google.
 
 <!-- *********************************************************************** -->
 <div class="www_subsection">
+  <a>LLVM</a>
+</div>
+<!-- *********************************************************************** -->
+
+<!-- *********************************************************************** -->
+<div class="www_subsubsection">
+  <a name="codegen_testing2018">Improve code generation testing</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="www_text">
+  <p>
+    <b>Description of the project:</b>
+    After instruction selection LLVM uses the MI (Machine Instruction)
+    representation for programs. We recently added support for reading and
+    writing this representation to disk
+    (<a href="http://llvm.org/docs/MIRLangRef.html">http://llvm.org/docs/MIRLangRef.html</a>). Usage of this format for writing
+    tests is growing and so is the desire to improve the format, tools and
+    workflow. Possible projects:
+  </p>
+
+  <ul>
+    <li>Create a single consistent format instead of the current mix of YAML + IR + MIR</li>
+    <li>Helper passes: Strip IR information, rename blocks and values, debug information, extract functions or blocks...</li>
+    <li>Create a bugpoint mode (or a new tool) to reduce .mir test cases</li>
+    <li>Create tool to remove unnecessary information from existing tests</li>
+  </ul>
+
+  <p><b>Confirmed Mentor:</b> Matthias Braun</p>
+  <p><b>Desirable skills:</b> Intermediate knowledge of C++.</p>
+</div>
+
+<!-- *********************************************************************** -->
+<div class="www_subsubsection">
+  <a name="llvm_optimized_debugging">Improve debugging of optimized code</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="www_text">
+  <p>
+  <b>Description of the project:</b> Debugging optimized code can be frustrating. Variables may appear as "<value optimized out>" in the debugger, or may not appear at all. Line numbers in stack traces may disappear, or worse, become inaccurate. To improve the situation, we have to teach more LLVM optimization passes how to preserve debug info. The primary focus will be on mid-level IR passes which fail to pass verification by the <a href="https://reviews.llvm.org/D40512">Debugify utility</a>. This utility can identify passes which drop debug info in a targeted way and can simplify test case generation.
+  </p>
+  <p><b>Expected Results:</b>This project has two goals. Initially, the student will gather metrics on debug info loss for individual llvm passes. This will let us measure subsequent improvements. The second goal is to incrementally fix as many debug info loss bugs as possible, with a focus on areas of the compiler which are the hottest.</p>
+
+  <p><b>Confirmed Mentor:</b> Vedant Kumar and Davide Italiano</p>
+  <p><b>Desirable skills:</b> Intermediate knowledge of C++.</p>
+</div>
+
+<!-- *********************************************************************** -->
+<div class="www_subsubsection">
+  <a name="replace_binary_utilities">Command line replacements for GNU Binutils</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="www_text">
+  <p><b>Description of the project:</b> The llvm project has a lot of tools that can be used to inspect binaries, just as any other toolchain project does. However, many people are accustomed to existing tools and so having a command line compatible shell and we'd like to make that easy for them. Bonus points for producing similar output so that automated tools can continue to work reliably.
+  <p><b>Expected Results:</b>This project has one goal - produce binary tools that are drop in compatible with GNU binutils. The student will be expected to focus on a single tool at a time so that we can count each one as "done" as much as possible.
+
+  <p><b>Confirmed Mentor:</b> Eric Christopher and Sterling Augustine</p>
+  <p><b>Desirable skills:</b> Intermediate knowledge of C++.</p>
+</div>
+
+<!-- *********************************************************************** -->
+<div class="www_subsubsection">
+  <a name="llvm_domtree_updater">Implement a single updater class for Dominators</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="www_text">
+  <p><b>Description of the project:</b> Dominance relation is used widely in many compiler analyses and optimizations. LLVM provides an implementation of the (Semi-NCA) Depth Based Search algorithm to incrementally update Dominator and PostDominator Trees. It it possible to use it directly or through a lazy updater object -- DeferredDominance. The current API is fragmented and different analyzes, transforms, and utilities (e.g. Local.cpp, LoopUnroll.cpp) have to decide how to perform incremental updates.
+  </p>
+  <p>The fix would be to design and implement a new class for abstracting away how tree updates are performed (eagerly or lazily) and which trees are actually being updated (none, only DomTree, only PostDomTree, both). With this, performing faster incremental updates will become possible by first updating DomTree, and then using the result to prune unnecessary updates to PostDomTree.</p>
+
+  <p>Expected Results:
+    <ul><li>Create a new class that will store Dominator Trees to update and allow to specify update policy.</li></ul>
+    <ul><li>Convert existing API to use the new updater object instead of working directly with DomTree/DeferredDominance.</li></ul>
+    <ul><li>Design and implement a new algorithm to prune unnecessary PostDomTree updates based on updated DomTree.</li></ul>
+    <ul><li>(Optional) Explore more strategies for performing lazy updates (e.g. by exposing .dominates() and performing updates when called).</li></ul>
+  </p>
+  <p><b>Confirmed Mentor:</b> Jakub Kuderski, Tobias Grosser (?)</p>
+  <p><b>Desirable skills:</b> Intermediate knowledge of C++. Familiarity with basic tree/graph algorithms and data structures.</p>
+</div>
+
+<!-- *********************************************************************** -->
+<div class="www_subsection">
   <a>LLDB</a>
 </div>
 <!-- *********************************************************************** -->
@@ -299,85 +384,6 @@ main <a href="https://developers.google.
 </div>
 
 <!-- *********************************************************************** -->
-<div class="www_subsubsection">
-  <a name="codegen_testing2018">Improve code generation testing</a>
-</div>
-<!-- *********************************************************************** -->
-
-<div class="www_text">
-  <p>
-    <b>Description of the project:</b>
-    After instruction selection LLVM uses the MI (Machine Instruction)
-    representation for programs. We recently added support for reading and
-    writing this representation to disk
-    (<a href="http://llvm.org/docs/MIRLangRef.html">http://llvm.org/docs/MIRLangRef.html</a>). Usage of this format for writing
-    tests is growing and so is the desire to improve the format, tools and
-    workflow. Possible projects:
-  </p>
-
-  <ul>
-    <li>Create a single consistent format instead of the current mix of YAML + IR + MIR</li>
-    <li>Helper passes: Strip IR information, rename blocks and values, debug information, extract functions or blocks...</li>
-    <li>Create a bugpoint mode (or a new tool) to reduce .mir test cases</li>
-    <li>Create tool to remove unnecessary information from existing tests</li>
-  </ul>
-
-  <p><b>Confirmed Mentor:</b> Matthias Braun</p>
-  <p><b>Desirable skills:</b> Intermediate knowledge of C++.</p>
-</div>
-
-<!-- *********************************************************************** -->
-<div class="www_subsubsection">
-  <a name="llvm_optimized_debugging">Improve debugging of optimized code</a>
-</div>
-<!-- *********************************************************************** -->
-
-<div class="www_text">
-  <p>
-  <b>Description of the project:</b> Debugging optimized code can be frustrating. Variables may appear as "<value optimized out>" in the debugger, or may not appear at all. Line numbers in stack traces may disappear, or worse, become inaccurate. To improve the situation, we have to teach more LLVM optimization passes how to preserve debug info. The primary focus will be on mid-level IR passes which fail to pass verification by the <a href="https://reviews.llvm.org/D40512">Debugify utility</a>. This utility can identify passes which drop debug info in a targeted way and can simplify test case generation.
-  </p>
-  <p><b>Expected Results:</b>This project has two goals. Initially, the student will gather metrics on debug info loss for individual llvm passes. This will let us measure subsequent improvements. The second goal is to incrementally fix as many debug info loss bugs as possible, with a focus on areas of the compiler which are the hottest.</p>
-
-  <p><b>Confirmed Mentor:</b> Vedant Kumar and Davide Italiano</p>
-  <p><b>Desirable skills:</b> Intermediate knowledge of C++.</p>
-</div>
-
-<!-- *********************************************************************** -->
-<div class="www_subsubsection">
-  <a name="replace_binary_utilities">Command line replacements for GNU Binutils</a>
-</div>
-<!-- *********************************************************************** -->
-
-<div class="www_text">
-  <p><b>Description of the project:</b> The llvm project has a lot of tools that can be used to inspect binaries, just as any other toolchain project does. However, many people are accustomed to existing tools and so having a command line compatible shell and we'd like to make that easy for them. Bonus points for producing similar output so that automated tools can continue to work reliably.
-  <p><b>Expected Results:</b>This project has one goal - produce binary tools that are drop in compatible with GNU binutils. The student will be expected to focus on a single tool at a time so that we can count each one as "done" as much as possible.
-
-  <p><b>Confirmed Mentor:</b> Eric Christopher and Sterling Augustine</p>
-  <p><b>Desirable skills:</b> Intermediate knowledge of C++.</p>
-</div>
-
-<!-- *********************************************************************** -->
-<div class="www_subsubsection">
-  <a name="llvm_domtree_updater">Implement a single updater class for Dominators</a>
-</div>
-<!-- *********************************************************************** -->
-
-<div class="www_text">
-  <p><b>Description of the project:</b> Dominance relation is used widely in many compiler analyses and optimizations. LLVM provides an implementation of the (Semi-NCA) Depth Based Search algorithm to incrementally update Dominator and PostDominator Trees. It it possible to use it directly or through a lazy updater object -- DeferredDominance. The current API is fragmented and different analyzes, transforms, and utilities (e.g. Local.cpp, LoopUnroll.cpp) have to decide how to perform incremental updates.
-  </p>
-  <p>The fix would be to design and implement a new class for abstracting away how tree updates are performed (eagerly or lazily) and which trees are actually being updated (none, only DomTree, only PostDomTree, both). With this, performing faster incremental updates will become possible by first updating DomTree, and then using the result to prune unnecessary updates to PostDomTree.</p>
-
-  <p>Expected Results:
-    <ul><li>Create a new class that will store Dominator Trees to update and allow to specify update policy.</li></ul>
-    <ul><li>Convert existing API to use the new updater object instead of working directly with DomTree/DeferredDominance.</li></ul>
-    <ul><li>Design and implement a new algorithm to prune unnecessary PostDomTree updates based on updated DomTree.</li></ul>
-    <ul><li>(Optional) Explore more strategies for performing lazy updates (e.g. by exposing .dominates() and performing updates when called).</li></ul>
-  </p>
-  <p><b>Confirmed Mentor:</b> Jakub Kuderski, Tobias Grosser (?)</p>
-  <p><b>Desirable skills:</b> Intermediate knowledge of C++. Familiarity with basic tree/graph algorithms and data structures.</p>
-</div>
-
-<!-- *********************************************************************** -->
 <div class="www_subsection">
   <a>Others</a>
 </div>




More information about the llvm-commits mailing list