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.
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].
[:OptimizationCourse:GCC Optimization Course and Tutorial]
[http://www.airs.com/dnovillo/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)]
[:HomePage#summitprocs: GCC Summit Proceedings]
[http://gcc.gnu.org/onlinedocs/gccint/ GCC internals]
[http://gcc.gnu.org/onlinedocs/cppinternals/ CPP internals]
[http://www.airs.com/dnovillo/pub/gcc/doc/html GCC Middle End and Back End API reference (automatically generated with doxygen every week)]
Dealing with the source code
[:Testing GCC:Testing GCC]
[:PerformanceTesting:Compile time and memory utilization testing]
[:WritingANewPass:Writing a new pass]
[:WritingANewFrontEnd:Writing a new front-end]
Structure Of GCC
[:StructureOfGCC:Structure of GCC]
[:FrontEnd:Language front ends]
[:MiddleEnd:Target independent code transformation frameworks]
[:BackEnd:Target dependent passes and code generation]