https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84402
--- Comment #37 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Martin Liška from comment #36) > (In reply to jojo from comment #35) > > (In reply to Martin Liška from comment #30) > > > A possible solution can be usage of '-flinker-output=nolto-rel -r' for > > > huge > > > files. > > > > it's useful for splitting huge files ? > > There's experiment I did: > > $ time g++ -O2 /tmp/gimple-match.ii -c > > real 0m35.790s > user 0m35.490s > sys 0m0.268s > > $ time g++ -O2 /tmp/gimple-match.ii -c -flto > > real 0m8.138s > user 0m7.915s > sys 0m0.202s > > $ time gcc -flto=auto -flinker-output=nolto-rel gimple-match.o -r -o > gimple-match2.o > > real 0m9.087s > user 1m56.028s > sys 0m3.292s > > $ time gcc -flto=auto -flinker-output=nolto-rel gimple-match.o -r -o > gimple-match2.o --param lto-partitions=8 > > real 0m7.350s > user 0m48.548s > sys 0m0.976s > > $ time gcc -flto=auto -flinker-output=nolto-rel gimple-match.o -r -o > gimple-match2.o --param lto-partitions=4 > > real 0m9.847s > user 0m30.462s > sys 0m0.392s > > so for N==4 we get to 8+10s = 18s (compared to the original 36s). And total > user time is 30+8, which is comparable > to the original 36s. The GSoC parallelism project this year is supposed to replicate this in a cheaper way and also develop some magic to automatically trigger it when it seems profitable.