mbox series

[00/11] tcg: Move tcg expanders out of line

Message ID 20231029210848.78234-1-richard.henderson@linaro.org
Headers show
Series tcg: Move tcg expanders out of line | expand

Message

Richard Henderson Oct. 29, 2023, 9:08 p.m. UTC
This reduces the amount of code within tcg-op-common.h, and the amount
of code in the code segment full stop.

With many translators these days, we're putting the expander function
addresses into tables, or pass them to other general target-specific
expansion helpers.  At present that means we get out-of-line copies of 
these functions anyway.  If the target is implemented with multiple
translation units, we can get multiple out-of-line copies.

This is also a necessary step in making tcg/arch/tcg-target.h private.

Top few code size reductions:

	-89k	qemu-system-ppc64
	-88k	qemu-system-aarch64
	-60k	qemu-system-mipsel
	-50k	qemu-system-arm
	-42k	qemu-system-riscv64
	-33k	qemu-system-i386
	-33k	qemu-system-m68k
	-32k	qemu-system-tricore


r~


Richard Henderson (11):
  tcg: Mark tcg_gen_op* as noinline
  tcg: Move tcg_gen_op* out of line
  tcg: Move generic expanders out of line
  tcg: Move 32-bit expanders out of line
  tcg: Move 64-bit expanders out of line
  tcg: Move vec_gen_* declarations to tcg-internal.h
  tcg: Move tcg_gen_opN declarations to tcg-internal.h
  tcg: Unexport tcg_gen_op*_{i32,i64}
  tcg: Move tcg_constant_* out of line
  tcg: Move tcg_temp_new_*, tcg_global_mem_new_* out of line
  tcg: Move tcg_temp_free_* out of line

 include/tcg/tcg-op-common.h     | 538 +++---------------------------
 include/tcg/tcg-temp-internal.h |  56 +---
 include/tcg/tcg.h               |  77 -----
 tcg/tcg-internal.h              |  18 +
 tcg/tcg-op.c                    | 566 +++++++++++++++++++++++++++-----
 tcg/tcg.c                       | 104 +++++-
 6 files changed, 664 insertions(+), 695 deletions(-)