On Fri, Mar 16, 2018 at 5:25 PM, Sebastiaan Peters <sebpet...@outlook.com> wrote: > Hello, > > My name is Sebastiaan Peters, currently an undergrad compsci student from The > Netherlands. > > I'm interested in the project about parallelizing the compilation with > threads project.
Thanks for your interest in this project. > My main background is with c#, however I have some experience with c, c++ and > x86 assembly. > As for my knowledge about compilers, that is mostly limited to the first few > chapters of the dragon book. > I have compiled GCC which acted as a cross compiler for my (very small) toy > os. > > Currently I have 3 questions: > > 1. Would my background knowledge be sufficient for this project? It's hard to tell. It would be surely helpful to have some background in how to manage shared state between threads. > 2. What is currently the recommended reading for learning the gcc internals? There's the internals manual, for the specific project the source tree organization and Passes and Files of the Compiler section might prove useful. Note our internals documentation is often out-of-date so the best reference is always the source. > 3. When it comes down to the different compiler phases, > which phase would be most benefited from the parallelization? I expect the only part that can be reasonably parallelized is the GIMPLE optimization pipeline as that has the least amount of shared state. There may be opportunities in IPA passes analysis stages as well, but we do not spend a lot of time there. Parallelizing the GIMPLE stage may not tackle the most expensive parts of the compilation - if you look at non-optimizing builds what takes the most time is lexing, parsing and register allocation. Richard. > Kind regards, > > Sebastiaan Peters