GCC
businessWeb Page: http://gcc.gnu.org/wiki/SummerOfCode
Mailing List: gcc@gcc.gnu.org
The GNU Compiler Collection includes the compilers used for all free operating systems for C, C++, Java, Fortran, and Ada.
Projects
- Automatic parallelization in Graphite With the integration with Graphite to GCC4.4, a strong loop nest analysis and transformation engine was introduced. But now it does only non-parallel loop generation. My work is to detect synchronization free parallel loops and generate parallel code for them, which will mainly enable programs run faster.
- Enable generic function cloning and program instrumentation in GCC to be able to create static binaries adaptable to varying program and system behavior or different architectures at run-time Function cloning is proved to be useful to make statically-compiled programs or libraries adaptable to changing inputs, architectures and virtual environments at run-time. Since no existent prototype have been fully completed and ported to the latest GCC, we would like to enable GCC generic function cloning and implement program instrumentation with program behavior monitoring library in GCC4.4 using pragmas and ICI to enable optimizing clones at fine-grain level, so as to improve performance.
- gfortran: Procedure Pointer Components & OOP The goals of my project are twofold: 1. I want to complete my work on Procedure Pointers, which includes (a) some bug fixing as well as additional features, like (b) procedure pointer return values and (c) procedure pointer components. 2. I would like to continue working on outstanding Fortran 2003 OOP features. gfortran already has a basic level of support for OOP, but many things like the CLASS statement and polymorphism are still missing.
- Make the OpenCL Platform Layer API and Runtime API for the Cell Processor and CPUs The aim of this project is to create an implementation that supports the Platform Layer API and Runtime API of OpenCL that can target the Cell Processor and CPUs.
- Provide fine-grain optimization selection and tuning abilities in GCC to be able to tune default optimization heuristic of the compiler or fine optimizations for a given program on a given architecture entirely automatically using statistical and machine learning techniques from the MILEPOST project. Iterative feedback-directed compilation combined with statistical and machine learning techniques showed very promising results in automating optimization heuristic tuning and compiler design for rapidly evolving hardware to considerably improve program performance and code size. I’d like to extend GCC to be able to select/deselect individual optimizations on a fine-grain level and tune their parameters automatically using machine learning technology from the MILEPOST project.