[www] r268439 - This patch adds draft proposal link, blog URL and status reporting interval

Roman Gareev via llvm-commits llvm-commits at lists.llvm.org
Tue May 3 14:07:02 PDT 2016


Author: romangareev
Date: Tue May  3 16:07:02 2016
New Revision: 268439

URL: http://llvm.org/viewvc/llvm-project?rev=268439&view=rev
Log:
This patch adds draft proposal link, blog URL and status reporting interval
details for GSoC 2016 project named "Interprocedural Register Allocation".
It also adds a status column to track to progress of project. It may help
others looking to move the previous year project forward.

Contributed-by: Vivek Pandya <vivekvpandya at gmail.com>
Reviewed-by: Tobias Grosser <tobias at grosser.es>

Differential Revision: http://reviews.llvm.org/D19826

Modified:
    www/trunk/SummerOfCode/2016.html

Modified: www/trunk/SummerOfCode/2016.html
URL: http://llvm.org/viewvc/llvm-project/www/trunk/SummerOfCode/2016.html?rev=268439&r1=268438&r2=268439&view=diff
==============================================================================
--- www/trunk/SummerOfCode/2016.html (original)
+++ www/trunk/SummerOfCode/2016.html Tue May  3 16:07:02 2016
@@ -19,54 +19,105 @@
     <th class="tg-9hbo">Mentor</th>
   </tr>
   <tr>
-    <td class="tg-yw4l">Better Alias Analysis By Default<br></td>
+    <td class="tg-yw4l"><a href="#baad">Better Alias Analysis By Default</a><br></td>
     <td class="tg-yw4l">Jia Chen<br></td>
     <td class="tg-yw4l">Hal Finkel / George Burgess IV<br></td>
   </tr>
   <tr>
-    <td class="tg-yw4l">Capture Tracking Improvements<br></td>
+    <td class="tg-yw4l"><a href="#cti">Capture Tracking Improvements</a><br></td>
     <td class="tg-yw4l">Scott Egerton<br></td>
     <td class="tg-yw4l">Nuno P. Lopes / Mehdi Amini</td>
   </tr>
   <tr>
-    <td class="tg-yw4l">Enabling LLVM's self-hosted modules builds using libstdc++<br></td>
+    <td class="tg-yw4l"><a href="#shmb">Enabling LLVM's self-hosted modules builds using libstdc++</a><br></td>
     <td class="tg-yw4l">Bianca-Cristina Cristescu<br></td>
     <td class="tg-yw4l">Vassil Vassilev<br></td>
   </tr>
   <tr>
-    <td class="tg-yw4l">Finding and analysing copy-pasted code with clang<br></td>
+    <td class="tg-yw4l"><a href="#acpc">Finding and analysing copy-pasted code with clang</a><br></td>
     <td class="tg-yw4l">Raphael Isemann<br></td>
     <td class="tg-yw4l">Vassil Vassilev<br></td>
   </tr>
   <tr>
-    <td class="tg-yw4l">Improvement of vectorization process in Polly<br></td>
+    <td class="tg-yw4l"><a href="#ivpp">Improvement of vectorization process in Polly</a><br></td>
     <td class="tg-yw4l">Roman Gareev<br></td>
     <td class="tg-yw4l">Tobias Grosser<br></td>
   </tr>
   <tr>
-    <td class="tg-yw4l">Interprocedural Register Allocation in LLVM<br></td>
+    <td class="tg-yw4l"><a href="#ipra">Interprocedural Register Allocation in LLVM</a><br>
+      <a href="https://docs.google.com/document/d/1DrsaFJdtxV73Zpns2bEgjATLFcWuaYMPHuvt5THLeLk/edit?usp=sharing" target="_blank">Draft proposal 
+      </a><br/>
+      Reporting Interval : weekly </br>
+      Personal website/blog : <a href="http://vivekvpandya.github.io/" target="_blank">vivekvpandya.github.io 
+      </a><br/>
+    </td>
     <td class="tg-yw4l">Vivek Pandya<br></td>
-    <td class="tg-yw4l">Mehdi Amini / Hal Finkel<br></td>
+    <td class="tg-yw4l">Mehdi Amini, Hal Finkel<br></td>
   </tr>
   <tr>
-    <td class="tg-yw4l">Polly as an Analysis Pass in LLVM<br></td>
+    <td class="tg-yw4l"><a href="#paap">Polly as an Analysis Pass in LLVM<br></td>
     <td class="tg-yw4l">Utpal Boral<br></td>
     <td class="tg-yw4l">Johannes Doerfert<br></td>
   </tr>
   <tr>
-    <td class="tg-yw4l">SAFECode's Memory Policy Hardening<br></td>
+    <td class="tg-yw4l"><a href="#scmph">SAFECode's Memory Policy Hardening</a><br></td>
     <td class="tg-yw4l">Zhengyang Liu<br></td>
     <td class="tg-yw4l">John Criswell<br></td>
   </tr>
   <tr>
-    <td class="tg-yw4l">Enabiling Polyhedral Optimizations in Julia (funded by Julia)<br></td>
+    <td class="tg-yw4l"><a href="#phoj">Enabiling Polyhedral Optimizations in Julia (funded by Julia)</a><br></td>
     <td class="tg-yw4l">Matthias Reisinger<br></td>
     <td class="tg-yw4l">Tobias Grosser, Tim Holy, Jameson<br></td>
   </tr>
 </table>
 
 </div>
+<div>
+  <h3>Projects Details</h3>
+  <div id="baad">
+  <h4>Better Alias Analysis By Default</h4>
+  <p>The cfl-aa pass implemented by Gerorge Burgess IV back in GSoC 2014 is a fast, precise and interprocedural analyses that overcomes many deficiencies in the alias analyses currently used in LLVM. It is also easily extensible to add support for field-, flow-, and context- sensitivity. However, the pass is not enabled in today's LLVM build due to (1) various self-hosting miscompilation bugs, and (2) not sufficiently tuned for existing optimization passes that uses it. The goal of this GSoC project is to bring cfl-aa to a usable state and make it a good complement, if not a replacement, of the existing alias analysis pipeline.</p>
+  </div>
+  <div id="cti">
+  <h4>Capture Tracking Improvements</h4>
+  <p>The capture tracking analysis is currently inefficient and inaccurate in cases. It could be improved in a number of ways, as mentioned by Philip Reames on the mailing list. I would like to use this opportunity to take my previous experience within LLVM and apply it to other areas of LLVM.</p>
+  </div>
+  <div id="shmb">
+  <h4>Enabling llvm's self-hosted modules builds using libstdc++</h4>
+  <p>A Module System for C++ is on its way to the C++ standard.
 
+The current state of the Module System, although fairly stable, it has a few bugs for C++ support. The most common reason for the bugs is the semantic merging of C++ entities. Currently, the method for ensuring no regressions is a buildbot for libc++, which builds llvm in modules self-hosted mode. Its main purpose is to find bugs in clang's implementation and ensure no regression for the ongoing development.
+
+Since the Module Systems is meant to be generic, the project aims to improve the stability and coverage of the Module System by finding as many issues as possible. One approach is to add a buildbot for libstdc++, because this would change the merging model for the modules, and in this way, it will point out different issues which would not be observed by using libc++. The choice for libstdc++ is motivated by its wider use in Unix and, more importantly, the benefits it will bring to supporting modules for third party projects that rely on libstdc++.
+</p>
+  </div>
+  <div id="acpc">
+  <h4>Finding and analysing copy-pasted code with clang</h4>
+  <p>Copy-pasted code is dangerous because it introduced bugs and makes projects harder to maintain. This proposal is about creating tools for finding copy-pasted code and report bugs that are caused by this practice. These tools include a checker for clang's static analyzer that analyses a single translation unit and a standalone tool that performs a project-wide analysis.</p>
+  </div>
+  <div id="ivpp">
+  <h4>Improvement of vectorization process in Polly</h4>
+  <p>Polly can perform classical loop transformations, exploit OpenMP level parallelism, expose SIMDization opportunities. However, due to the lack of a machine-specific performance model and missing optimizations, these transformations sometimes lead to compile and execution time regressions, and the generated code is at least one order of magnitude off in comparison to the corresponding vendor implementations. The goal of the project is to reduce such influence through implementation of optimizations aimed to produce code compatible with the best implementations of BLAS and an attempt to avoid vectorization of loops, when it is not profitable for the target architecture. It could be a step in transformation of Polly into an optimization pass used in standard -O3 optimizations.</p>
+  </div>
+  <div id="ipra">
+  <h4>Interprocedural Register Allocation in LLVM</h4>
+  <p>The objective of this project is to implement a simple interprocedural register allocation that attempts to minimize register spill code by propagating register usage information through the program call graph. By examining the register usage information at each call site, the intraprocedural register allocator can avoid assigning registers already used in the called routines and minimizing spill code. <br/>Stretch goal for this project would be a link time register allocator, in that register allocation is deferred till linking of the code to optimize the allocation across module boundaries.</p>
+  </div>
+  <div id="paap">
+  <h4>Polly as an Analysis Pass in LLVM</h4>
+  <p>The Polyhedral framework provides an exact dependence analysis, which is more powerful than conventional dependence testing algorithms. Currently, LLVM mainline lacks a powerful dependence analysis framework, and at the same time, Polly's (a high level data locality optimizer based on polyhedral framework) dependence analysis is suitable for many transformation passes in LLVM like Loop Vectorization, Loop Versioning, Modulo Scheduling, Loop Nest Optimizations, etc. I want to provide an API to Polly such that its precise dependence analysis can be used as an Analysis pass within LLVM's transformation passes.</p>
+  </div>
+  <div id="scmph">
+  <h4>SAFECode's Memory Policy Hardening</h4>
+  <p>Monolithic kernels, like linux, did not provide a hardening mechanism on the kernel modules' memory access. Modules in Linux could do almost everything. Arbitary write and read may cause system crash, information leak, and even rootkit injection. There is a great need to implement a memory hardening mechanism to limit the behavior of a kernel module.
+
+This projects will enhance the 'Baggy Bounds with Accurate Checking' (BBAC). By adding information to the memory object's padding area, we can perform various safety checks with limited overhead. I will mainly focus on providing runtime access policy hardening. This work will prevent most of illegal memory accesses efficiently.</p>
+  </div>
+  <div id="phoj">
+  <h4>Enabling Polyhedral Optimizations in Julia</h4>
+  <p>Julia is a dynamic programming language that, over the past few years, gained interest in the open-source community, especially in the field of scientific computing. Julia programs are executed by a virtual machine that translates the source code, during run-time, to machine code based on the LLVM compiler framework. LLVM provides a variety of analyses and transformation capabilities that are leveraged to optimize programs and facilitate efficient execution. More recently, LLVM was enhanced by a new optimization framework, namely Polly, that supports automatic parallelization and data-locality optimizations based on the polyhedral model. Polly is able to speed up compute kernels significantly, especially in the context of dense linear algebra and iterative stencil computations. In the course of this project I plan to integrate Polly into Julia to enable polyhedral optimizations for Julia programs.</p>
+  </div>
+</div>
 <hr>
 <address>
   <a href="http://jigsaw.w3.org/css-validator/check/referer"><img




More information about the llvm-commits mailing list