Welcome to the Getting Started section of the GCC Wiki
This section contains collected information geared towards folks who are new to GCC and may be feeling a bit lost in the barbaric jungles of GCC's source code. Although we are continuously trying to improve GCC's internal modularity and interfaces, the fact remains that GCC is about 20 years old, fairly large and we need to keep it working on the multitude of supported architectures and languages. So, getting to work with GCC can be a challenge.
Everyone is welcome to add links to tutorials, HOWTOs, cheat sheets, etc that may be floating around the net.
This page also has a collection of outstanding improvement projects that for one reason or another nobody has gotten around to finishing. You are welcome to add more, or to "claim" a project that you find interesting to work in.
So, you are ready to contribute to GCC. We are constantly looking for new developers who are willing to donate their time to advance GCC. Before you do, however, there is an important formality that you need to go through: Copyright assignment. GCC is owned by the [http://www.fsf.org Free Software Foundation (FSF)], as such, all contributors must assign their copyright to the FSF before any of their changes are accepted. The copyright assignment process is described in [http://gcc.gnu.org/contribute.html Contributing to GCC].
Dealing with the source code
[:PerformanceTesting:Compile time and memory utilization testing]
[:WritingANewPass:Writing a new pass]
[:WritingANewFrontEnd:Writing a new front-end]
[http://gcc.gnu.org/onlinedocs/gccint/ GCC internals]
[http://gcc.gnu.org/onlinedocs/cppinternals/ CPP internals]
[:OptimizationCourse:GCC Optimization Course and Tutorial]
[http://dnovillo.bravehost.com/Papers/#cgo2007 GCC Internals Tutorial at CGO 2007]
[http://www.cse.iitb.ac.in/~uday/gcc-workshop/?file=downloads Workshop on GCC Internals (Advanced GCC Workshop 2007)]
- [attachment:loopcheat.ps Cheatsheet for loop optimizer (GCC summit 2007)]
- ["Speedup areas"]
- ["general backend cleanup"]
- ["Top-Level Bootstrap"]
- ["Top-Level Libgcc Migration"]
- [:Memory management:Proper GCC Memory Management]
- ["Partial Transitions"]
[:LinkTimeOptimization:Link Time Optimization]
[:LoopOptTasks:Loop Optimization Related Tasks]
[:SwingModuloScheduling:Modulo Scheduling Related Tasks]
- ["Better Uninitialized Warnings"]
[:VectorizationTasks:Vectorization Related Tasks]
- [:tuples:GIMPLE tuples]
- [:functionAdaptation:Function Adaptation]