Processors are becoming increasingly parallel, but compiling software has so far been a task parallelizable only by the number of files in it. To improve compilation parallelism granularity, we propose a method feasible to implement in commercial compilers for single file parallel compilation, with simple modifications in the Link Time Optimization (LTO) engine; which we show by implementing it in GCC.
This method resulted in a 35% speedup when self-compiling GCC when compared to make -j only parallelism, and up to 3.5x speedup when compiling individual files. We also explain why the adoption of our proposed method is still compatible with the Reproducible Builds project.