[PATCH 0/6] Parallelize Intra-Procedural Optimizations using the LTO Engine.
Sat Aug 22 21:04:48 GMT 2020
On 08/21, Josh Triplett wrote:
> On Thu, Aug 20, 2020 at 07:00:13PM -0300, Giuliano Belinassi wrote:
> > This patch series add a new flag "-fparallel-jobs=" to control if the
> > compiler should try to compile the current file in parallel.
> > Bootstrapped and Regtested on Linux x86_64.
> > Giuliano Belinassi (6):
> > Modify gcc driver for parallel compilation
> > Implement a new partitioner for parallel compilation
> > Implement fork-based parallelism engine
> > Add `+' for Jobserver Integration
> > Add invoke documentation
> > New tests for parallel compilation feature
> Very nice!
Thank you for your interest in this :)
> I'm interested in testing this on a highly parallel system. What
> baseline do these patches apply to? They don't seem to apply to GCC
Hummm, this was supposed to work on trunk out of the box. However,
there is a high probability that I messed up something while rebasing.
I will post a version 2 of it when I get more comments and when I fix
the Makefile issue that Joseph pointed out in other e-mail.
If you want to test it on a high parallel system, I think it will be
cool to see how it behaves also when --param=promote-statics=1, as it
increases parallelism opportunity. :)
> Also, I tried to bootstrap the current tip of the devel/autopar_devel
> branch, but ended up with compiler segfaults that all look like this:
> ../../gcc/zlib/compress.c:86:1: internal compiler error: Segmentation fault
> 86 | }
> | ^
Well, there was once a bug in this branch when compiling with -flto that
caused the assembler output file not to be properly initialized early
enough, resulting in LTO LGEN stage writing into a invalid FILE pointer.
I fixed this during rebasing but I forgot to push to the autopar_devel
branch. In any case, I just pushed the recent changes to autopar_devel
which fix this issue.
In any case, -fparallel-jobs= should NOT be used together with -flto.
Although I used part of the LTO engine for development of this feature,
they are meant for distinct things. I guess I should give a warning
about that in next version :)
Also, I just tested bootstrap with
../gcc/configure --disable-multilib --enable-languages=c,c++
on x86_64 linux and it is working.
More information about the Gcc-patches