LLVM Compiler Infrastructure
Web Page: http://llvm.org/OpenProjects.html
Mailing List: http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
- Enhancing Giri: Dynamic Slicing in LLVM Dynamic program slicing has been used in many applications. Giri was a re- search project from UIUC, which im- plemented the dynamic backward slicing in LLVM. I think it’s a good idea to extend this project in several ways: 1) Update the code to LLVM mainline and make it robust, 2) Improve the performance of giri run-time, 3) Reduce the trace size, etc.
- FastPolly: Reducing LLVM-Polly Compile-Time Overhead LLVM-Polly is a promising polyhedral optimizer for data-locality and parallelism. However, experimental results show that Polly analysis and optimization can lead to significant compile-time overhead. On average, Polly optimization will increase the compile time by 393% for PolyBench benchmarks and by 53% for MediaBench benchmarks. That means if you want to gain from Polly, you have to pay 4 times extra compile-time overhead. Even if you do not want to gain much from Polly, you still have to pay 53% compile-time overhead. Such expensive compile-time overhead would make Polly much less attractive to LLVM users. I argue that maintaining fast compile time when Polly is enabled is very important, especially if we think of enabling Polly in default for all LLVM users. Based on this assumption, this project tries to reduce Polly compile-time overhead by revising a large number of Polly passes. First, I will revising some hot Polly passes that dominate the total compile-time overhead; Second, I will revisit Polly canonicalization passes and try to let the Polly bail out early, so Polly will not cause much overhead when it cannot optimize program; Third, I will revisit and improve Polly optimization passes and code generation passes, so Polly can be much faster when it can optimize program. I hope this project can benefit both LLVM users and Polly users. For LLVM users who care more about compile-time overhead, it enables Polly to provide extra performance gains within little extra compile-time overhead. For Polly users who care more about code quality, this project will significantly reduce the compile-time overhead without performance loss.
- Flang. Flang is a frontend for the Fortran programming language.
- Improving Clang C++ Modernizer (f.k.a C++11 Migrator) The purpose of the C++11 Migrator is to do source-to-source translation to migrate existing C++ code to use C++11 features to enhance maintainability, readability, runtime performance, and compile-time performance. -- http://blog.llvm.org/2013/04/status-of-c11-migrator.html The migrator is a young tool who still requires a lot of development. The proposed project consists of adding new transformations as well as to improve existing functionality.