https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111600

--- Comment #35 from Mark Wielaard <mark at gcc dot gnu.org> ---
(In reply to GCC Commits from comment #28)
> The master branch has been updated by Robin Dapp <rd...@gcc.gnu.org>:
> 
> https://gcc.gnu.org/g:184378027e92f51e02d3649e0ca523f487fd2810
> 
> commit r14-5034-g184378027e92f51e02d3649e0ca523f487fd2810
> Author: Robin Dapp <rd...@ventanamicro.com>
> Date:   Thu Oct 12 11:23:26 2023 +0200
> 
>     genemit: Split insn-emit.cc into several partitions.
>     
>     On riscv insn-emit.cc has grown to over 1.2 mio lines of code and
>     compiling it takes considerable time.
>     Therefore, this patch adjust genemit to create several partitions
>     (insn-emit-1.cc to insn-emit-n.cc).  The available patterns are
>     written to the given files in a sequential fashion.
>     
>     Similar to match.pd a configure option --with-emitinsn-partitions=num
>     is introduced that makes the number of partition configurable.

The size of the partitions is a little uneven though. Using
--with-emitinsn-partitions=48 I get some empty partitions and some bigger than
2MB:

$ du -sb insn-emit-*cc | sort -n
814     insn-emit-12.cc
814     insn-emit-26.cc
814     insn-emit-27.cc
814     insn-emit-28.cc
113694  insn-emit-1.cc
168449  insn-emit-2.cc
197478  insn-emit-4.cc
231826  insn-emit-25.cc
264612  insn-emit-24.cc
269851  insn-emit-3.cc
273807  insn-emit-23.cc
309345  insn-emit-15.cc
354863  insn-emit-22.cc
399238  insn-emit-29.cc
469333  insn-emit-13.cc
494480  insn-emit-16.cc
529290  insn-emit-7.cc
548060  insn-emit-14.cc
587349  insn-emit-8.cc
605757  insn-emit-18.cc
654426  insn-emit-11.cc
674447  insn-emit-21.cc
715062  insn-emit-6.cc
719623  insn-emit-30.cc
722383  insn-emit-17.cc
739181  insn-emit-5.cc
740943  insn-emit-19.cc
752354  insn-emit-10.cc
775514  insn-emit-9.cc
798665  insn-emit-37.cc
864751  insn-emit-39.cc
880633  insn-emit-45.cc
898498  insn-emit-20.cc
921502  insn-emit-47.cc
927048  insn-emit-38.cc
940841  insn-emit-46.cc
954115  insn-emit-33.cc
979274  insn-emit-44.cc
1054316 insn-emit-32.cc
1133828 insn-emit-31.cc
1151717 insn-emit-40.cc
1190472 insn-emit-36.cc
1207434 insn-emit-41.cc
1218249 insn-emit-43.cc
1299464 insn-emit-42.cc
1887267 insn-emit-34.cc
1977532 insn-emit-35.cc
2935485 insn-emit-48.cc

Note that the last one (insn-emit-48.cc) is much larger than the rest.
Something similar happens with --with-emitinsn-partitions=20 where the smallest
one is just 120K but the biggest (and again the last one) is 4.3M.

$ du -sb insn-emit-*cc | sort -n
122643  insn-emit-11.cc
466445  insn-emit-12.cc
545997  insn-emit-1.cc
691176  insn-emit-10.cc
773776  insn-emit-2.cc
1027938 insn-emit-6.cc
1138222 insn-emit-5.cc
1524621 insn-emit-9.cc
1558328 insn-emit-3.cc
1730818 insn-emit-7.cc
1865168 insn-emit-4.cc
1893646 insn-emit-8.cc
2174548 insn-emit-16.cc
2378629 insn-emit-19.cc
2404572 insn-emit-13.cc
2840108 insn-emit-17.cc
2894107 insn-emit-14.cc
3030400 insn-emit-18.cc
4156366 insn-emit-15.cc
4486663 insn-emit-20.cc

Another problematic file is insn-recog.cc which is 19MB and takes 1 hour+ to
compile for me.

Reply via email to