]> gcc.gnu.org Git - gcc.git/commit
genemit: Split insn-emit.cc into several partitions.
authorRobin Dapp <rdapp@ventanamicro.com>
Thu, 12 Oct 2023 09:23:26 +0000 (11:23 +0200)
committerRobin Dapp <rdapp@ventanamicro.com>
Tue, 31 Oct 2023 12:34:28 +0000 (13:34 +0100)
commit184378027e92f51e02d3649e0ca523f487fd2810
treea05e1b0ffcb081261aa94b96fc4700fa0748ee2e
parent15404016d96dca9132b952980cda24cae33b3ee0
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.

gcc/ChangeLog:

PR bootstrap/84402
PR target/111600

* Makefile.in: Handle split insn-emit.cc.
* configure: Regenerate.
* configure.ac: Add --with-insnemit-partitions.
* genemit.cc (output_peephole2_scratches): Print to file instead
of stdout.
(print_code): Ditto.
(gen_rtx_scratch): Ditto.
(gen_exp): Ditto.
(gen_emit_seq): Ditto.
(emit_c_code): Ditto.
(gen_insn): Ditto.
(gen_expand): Ditto.
(gen_split): Ditto.
(output_add_clobbers): Ditto.
(output_added_clobbers_hard_reg_p): Ditto.
(print_overload_arguments): Ditto.
(print_overload_test): Ditto.
(handle_overloaded_code_for): Ditto.
(handle_overloaded_gen): Ditto.
(print_header): New function.
(handle_arg): New function.
(main): Split output into 10 files.
* gensupport.cc (count_patterns): New function.
* gensupport.h (count_patterns): Define.
* read-md.cc (md_reader::print_md_ptr_loc): Add file argument.
* read-md.h (class md_reader): Change definition.
gcc/Makefile.in
gcc/configure
gcc/configure.ac
gcc/genemit.cc
gcc/gensupport.cc
gcc/gensupport.h
gcc/read-md.cc
gcc/read-md.h
This page took 0.056852 seconds and 5 git commands to generate.