GSoC/GCI Archive
Google Summer of Code 2014

GCC - GNU Compiler Collection

License: GNU General Public License version 3.0 (GPLv3)

Web Page: http://gcc.gnu.org/wiki/SummerOfCode

Mailing List: gcc@gcc.gnu.org

GCC is the GNU Compiler Collection, the standard compiler on most free operating systems. It contains front ends for many languages, such as C, C++, Objective-C, Fortran, Java, Ada, and Go. GCC can generate code for a wide variety of architectures, including ARM, MIPS, PowerPC, x86, and many, many more.

Projects

  • Coarray support in GNU GFortran The Coarray syntax adds a few specific keywords to the Fortran language and leaves the user free to utilize the usual array syntax to realize parallel programs. Having the Coarray support inside the GNU GFortran compiler will bring benefits to every user which needs to produce parallel software without being an expert parallel programmer.
  • Concepts Separate Checking I propose to implement features related to the separate checking of templates in the c++-concepts branch of GCC. The goal is to provide an initial level of opt-in support that allow template definitions to be checked against their constraints. This would help provide opportunities to catch type errors in template definitions instead of during template instantiation.
  • GCC Go escape analysis The Project aims to accomplish escape analysis for gccgo.
  • Generating folding patterns from meta description The purpose of this project is to write a tool that reads pattern descriptions written in a lisp-style DSL and generates C code for folding on GIMPLE and GENERIC, and rewrite patterns from tree-ssa-forwporp, fold-const in this DSL. Another goal is to provide an interface for other SSA propogation passes (for example forwprop, value numbering), for performing folding on-the-fly, using information from the pass lattice.
  • Integration of ISL code generator into Graphite For a long period of time Graphite was relying on CLooG to produce GIMPLE code. The Integer Set Library (ISL) recently became available in this project to be used as a back end of CLooG. ISL is nowadays mature enough to replace CLooG with own code generation that sometimes is better. This project aims to integrate ISL code generation into Graphite and avoid necessity of CLooG in GCC.