]> git.ipfire.org Git - thirdparty/gcc.git/commit
genrecog: Split into separate partitions [PR111600].
authorRobin Dapp <rdapp@ventanamicro.com>
Tue, 26 Nov 2024 13:44:17 +0000 (14:44 +0100)
committerRobin Dapp <rdapp@ventanamicro.com>
Fri, 13 Dec 2024 13:20:13 +0000 (14:20 +0100)
commit6dcfe8743134936db17ffdfd0a5102a87338f494
treef6a357e2f46bff856e16a1279609915ca92ee218
parent959a80a46dbc4d3ad1bf8560dfacb585ccd8cac4
genrecog: Split into separate partitions [PR111600].

Hi,

this patch makes genrecog split its output into separate files (10 by
default) in the same vein genemit does.  The changes are mostly
mechanical again, changing printfs and puts to fprintf.
As insn-recog.cc relies on being able to call other recog functions a
header insn-recog.h is introduced that pre declares all of those.

For simplicity the number of files is determined by (re-using)
--with-insnemit-partitions.  Naming suggestions welcome :)

Bootstrapped and regtested on x86 and power10, regtested on riscv.
aarch64 bootstrap is currently blocked because of the
"maybe uninitialized" issue discussed on IRC.

Regards
 Robin

PR target/111600

gcc/ChangeLog:

* Makefile.in:  Add insn-recog split.
* configure: Regenerate.
* configure.ac: Document that the number of insnemit partitions is
used for insn-recog as well.
* genconditions.cc (write_one_condition): Use fprintf.
* genpreds.cc (write_predicate_expr): Ditto.
(write_init_reg_class_start_regs): Ditto.
* genrecog.cc (write_header): Add header file to includes.
(printf_indent): Use fprintf.
(change_state): Ditto.
(print_code): Ditto.
(print_host_wide_int): Ditto.
(print_parameter_value): Ditto.
(print_test_rtx): Ditto.
(print_nonbool_test): Ditto.
(print_label_value): Ditto.
(print_test): Ditto.
(print_decision): Ditto.
(print_state): Ditto.
(print_subroutine_call): Ditto.
(print_acceptance): Ditto.
(print_subroutine_start): Ditto.
(print_pattern): Ditto.
(print_subroutine): Ditto.
(print_subroutine_group): Ditto.
(handle_arg): Add -O and -H for output and header file handling.
(main): Use callback.
* gentarget-def.cc (def_target_insn): Use fprintf.
* read-md.cc (md_reader::print_c_condition): Ditto.
* read-md.h (class md_reader): Ditto.
gcc/Makefile.in
gcc/configure
gcc/configure.ac
gcc/genconditions.cc
gcc/genpreds.cc
gcc/genrecog.cc
gcc/gentarget-def.cc
gcc/read-md.cc
gcc/read-md.h