[www] r355874 - Add GSoC project on source annotation

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 11 15:46:24 PDT 2019


Author: jdoerfert
Date: Mon Mar 11 15:46:23 2019
New Revision: 355874

URL: http://llvm.org/viewvc/llvm-project?rev=355874&view=rev
Log:
Add GSoC project on source annotation

Modified:
    www/trunk/OpenProjects.html

Modified: www/trunk/OpenProjects.html
URL: http://llvm.org/viewvc/llvm-project/www/trunk/OpenProjects.html?rev=355874&r1=355873&r2=355874&view=diff
==============================================================================
--- www/trunk/OpenProjects.html (original)
+++ www/trunk/OpenProjects.html Mon Mar 11 15:46:23 2019
@@ -31,6 +31,9 @@
       <li><a href="#analyze-llvm">Apply the Clang Static Analyzer to LLVM-based
           Projects</a>
       </li>
+      <li><a href="#header-generation">Generate annotated sources based on
+          LLVM-IR analyses</a>
+      </li>
     </ul>
     </li>
     <li>
@@ -349,6 +352,48 @@ main <a href="https://developers.google.
   <p><b>Desirable skills:</b> Intermediate knowledge of C++.</p>
 </div>
 
+<!-- *********************************************************************** -->
+<div class="www_subsubsection">
+  <a name="header-generation">Generate annotated sources based on
+          LLVM-IR analyses</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="www_text">
+  <p><b>Background and motivation:</b>
+  During the compilation of a piece of code, LLVM derives various facts that are
+  only used while the respective translation unit (TU), or LLVM module, is
+  processed. This holds for standard compilation but also
+  link-time-optimization (LTO) in which the module is (partially) merged with
+  others, that are part of the same project, at link time. In either scenario
+  there are drawbacks: In single TU compilation, the derived information is not
+  accessible to other TUs, which generally leads to performance loss in the
+  presence of cross TU accesses or calls. In LTO-mode, only the parts build
+  together in LTO-mode, or distributed in LTO-mode, will benefit from cross TU
+  optimizations. This means for example that pre-build (proprietary)
+  third-party libraries are precluded. Any LTO approach, including thin-LTO,
+  will additionally come with a non-trivial compile time investment.</p>
+
+  <p><b>Description of the project:</b>
+  In this project we propose to expose the LLVM derived facts to the outside
+  world by annotating the respective declarations in the source, mostly header,
+  files. These annotations can vary in their expressiveness and compatibility
+  with the existing base language annotations but they should always allow
+  subsequent compilations, which include the annotated source files, to produce
+  better code in the presence of cross TU accesses and calls.</p>
+
+  <p><b>Expected results:</b>
+  A prototype implementation that can generate annotated source code based on
+  LLVM-IR attributes. Additionally, a comparison of this optimization approach
+  to single TU, thin-LTO, and LTO compilation, with regards to compile time,
+  memory consumption, and execution time.
+  </p>
+
+  <p><b>Confirmed Mentor:</b> Johannes Doerfert, Brian Homerding</p>
+  <p><b>Desirable skills:</b> Good knowledge of C and C++ semantics,
+                              C++ coding experience</p>
+</div>
+
 
 <!-- *********************************************************************** -->
 <div class="www_sectiontitle">




More information about the llvm-commits mailing list