Parallel GCC: a research project aiming to parallelize a real-world compiler
1–10 of 73 posts
Re: Parallel GCC: a research project aiming to parallelize a real-world compiler
#2Re: Parallel GCC: a research project aiming to parallelize a real-world compiler
#3Re: Parallel GCC: a research project aiming to parallelize a real-world compiler
#4Re: Parallel GCC: a research project aiming to parallelize a real-world compiler
#5The old-school approach to this was "distcc". At the company where we used it for C++ we had a small compile farm and usually did "make -j 50".
Re: Parallel GCC: a research project aiming to parallelize a real-world compiler
#6Re: Parallel GCC: a research project aiming to parallelize a real-world compiler
#7Llvm already has one process per compile unit I believe.
Re: Parallel GCC: a research project aiming to parallelize a real-world compiler
#8The old-school approach to this was "distcc". At the company where we used it for C++ we had a small compile farm and usually did "make -j 50".
Further, there's then GOMA which is the distcc equivalent. I frequently build Android with 500 cores in the cloud. For that reason, I don't think Google engineers will ever focus on the compiler speed of llvm. That said, LLD (llvm's linker) is the fastest linker in town by far.
Re: Parallel GCC: a research project aiming to parallelize a real-world compiler
#9The old-school approach to this was "distcc". At the company where we used it for C++ we had a small compile farm and usually did "make -j 50".
Re: Parallel GCC: a research project aiming to parallelize a real-world compiler
#10Llvm already has one process per compile unit I believe.
Which is not parallelization. There's always the question of should I parallelize my compilation at the compiler level, or the build level (ie. Multiple translation units in flight). I think there's room for both, so you hopefully can get faster incremental compiles of a few number of TUs, but still have the old data level parallelization of multiple TUs.
It actually works just fine (IIRC), but occasionally breaks when people do silly things :)
I believe you just need to enable LLVM_ENABLE_THREADS in the config.