https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84402
--- Comment #36 from Martin Liška <marxin at gcc dot gnu.org> --- (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.