This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GSOC Question about the parallelization project

On Fri, Mar 16, 2018 at 5:25 PM, Sebastiaan Peters
<> 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
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

> 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.


> Kind regards,
> Sebastiaan Peters

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]