mbox series

[v2,00/76] tcg: Drop tcg_temp_free from translators

Message ID 20230227052505.352889-1-richard.henderson@linaro.org
Headers show
Series tcg: Drop tcg_temp_free from translators | expand

Message

Richard Henderson Feb. 27, 2023, 5:23 a.m. UTC
Based-on: 20230225085945.1798188-1-richard.henderson@linaro.org
("[PATCH v3 00/30] tcg: Simplify temporary usage")

In the above patch set, we changed the lifetime of the temps
allocated by the guest translators, and eliminated their reuse,
so that we have the best chance of reducing their strength.

That we don't reuse them means that we gain nothing by freeing them.
Therefore, drop all mention of tcg_temp_free from target/.

Changes for v2:
  * Apply r-b.
  * Fix 74/76 "tracing: remove transform.py".


r~


Richard Henderson (76):
  tcg: Remove tcg_check_temp_count, tcg_clear_temp_count
  accel/tcg: Remove translator_loop_temp_check
  target/alpha: Drop tcg_temp_free
  target/arm: Remove arm_free_cc, a64_free_cc
  target/arm: Remove value_global from DisasCompare
  target/arm: Drop tcg_temp_free from translator.c
  target/arm: Drop DisasContext.tmp_a64
  target/arm: Drop new_tmp_a64
  target/arm: Drop new_tmp_a64_zero
  target/arm: Drop tcg_temp_free from translator-a64.c
  target/arm: Drop tcg_temp_free from translator-m-nocp.c
  target/arm: Drop tcg_temp_free from translator-mve.c
  target/arm: Drop tcg_temp_free from translator-neon.c
  target/arm: Drop tcg_temp_free from translator-sme.c
  target/arm: Drop tcg_temp_free from translator-sve.c
  target/arm: Drop tcg_temp_free from translator-vfp.c
  target/arm: Drop tcg_temp_free from translator.h
  target/avr: Drop DisasContext.free_skip_var0
  target/avr: Drop R from trans_COM
  target/avr: Drop tcg_temp_free
  target/cris: Drop cris_alu_free_temps
  target/cris: Drop cris_alu_m_free_temps
  target/cris: Drop addr from dec10_ind_move_m_pr
  target/cris: Drop tcg_temp_free
  target/hexagon: Drop tcg_temp_free from C code
  target/hexagon: Drop tcg_temp_free from gen_tcg_funcs.py
  target/hexagon/idef-parser: Drop tcg_temp_free
  target/hexagon/idef-parser: Drop HexValue.is_manual
  target/hppa: Drop tcg_temp_free
  target/i386: Drop tcg_temp_free
  target/loongarch: Drop temp_new
  target/loongarch: Drop tcg_temp_free
  target/m68k: Drop mark_to_release
  target/m68k: Drop free_cond
  target/m68k: Drop tcg_temp_free
  target/microblaze: Drop tcg_temp_free
  target/mips: Drop tcg_temp_free from micromips_translate.c.inc
  target/mips: Drop tcg_temp_free from mips16e_translate.c.inc
  target/mips: Drop tcg_temp_free from msa_translate.c
  target/mips: Drop tcg_temp_free from mxu_translate.c
  target/mips: Drop tcg_temp_free from nanomips_translate.c.inc
  target/mips: Drop tcg_temp_free from octeon_translate.c
  target/mips: Drop tcg_temp_free from translate_addr_const.c
  target/mips: Drop tcg_temp_free from tx79_translate.c
  target/mips: Fix trans_mult_acc return
  target/mips: Drop tcg_temp_free from vr54xx_translate.c
  target/mips: Drop tcg_temp_free from translate.c
  target/nios2: Drop tcg_temp_free
  target/openrisc: Drop tcg_temp_free
  target/ppc: Drop tcg_temp_free
  target/riscv: Drop ftemp_new
  target/riscv: Drop temp_new
  target/riscv: Drop tcg_temp_free
  target/rx: Drop tcg_temp_free
  target/s390x: Use tcg_constant_* in local contexts
  target/s390x: Use tcg_constant_* for DisasCompare
  target/s390x: Use tcg_constant_i32 for fpinst_extract_m34
  target/s390x: Use tcg_constant_* in translate_vx.c.inc
  target/s390x: Drop free_compare
  target/s390x: Drop tcg_temp_free from translate_vx.c.inc
  target/s390x: Drop tcg_temp_free from translate.c
  target/s390x: Remove assert vs g_in2
  target/s390x: Remove g_out, g_out2, g_in1, g_in2 from DisasContext
  target/sh4: Drop tcg_temp_free
  target/sparc: Drop get_temp_tl
  target/sparc: Drop get_temp_i32
  target/sparc: Remove egress label in disas_sparc_context
  target/sparc: Drop free_compare
  target/sparc: Drop tcg_temp_free
  target/tricore: Drop tcg_temp_free
  target/xtensa: Drop reset_sar_tracker
  target/xtensa: Drop tcg_temp_free
  include/exec/gen-icount: Drop tcg_temp_free in gen_tb_start
  tracing: remove transform.py
  tcg: Create tcg/tcg-temp-internal.h
  docs/devel/tcg-ops: Drop recommendation to free temps

 docs/devel/tcg-ops.rst                        |   4 -
 target/hexagon/idef-parser/README.rst         |   8 -
 meson.build                                   |   1 -
 include/exec/gen-icount.h                     |   2 -
 include/exec/translator.h                     |   2 -
 include/tcg/tcg-temp-internal.h               |  83 +++
 include/tcg/tcg.h                             |  68 --
 target/arm/translate-a64.h                    |   2 -
 target/arm/translate.h                        |   7 -
 target/hexagon/gen_tcg.h                      |  29 -
 target/hexagon/gen_tcg_hvx.h                  |  15 -
 target/hexagon/idef-parser/idef-parser.h      |   1 -
 target/hexagon/idef-parser/parser-helpers.h   |   4 -
 target/hexagon/macros.h                       |   7 -
 target/loongarch/translate.h                  |   3 -
 accel/tcg/plugin-gen.c                        |   1 +
 accel/tcg/translator.c                        |  16 -
 target/alpha/translate.c                      |  71 --
 target/arm/translate-a64.c                    | 594 ++--------------
 target/arm/translate-m-nocp.c                 |  20 -
 target/arm/translate-mve.c                    |  52 --
 target/arm/translate-neon.c                   | 131 +---
 target/arm/translate-sme.c                    |  28 -
 target/arm/translate-sve.c                    | 206 +-----
 target/arm/translate-vfp.c                    | 193 -----
 target/arm/translate.c                        | 281 +-------
 target/avr/translate.c                        | 251 -------
 target/cris/translate.c                       | 113 ---
 target/hexagon/genptr.c                       |  58 --
 target/hexagon/idef-parser/parser-helpers.c   | 157 ----
 target/hexagon/translate.c                    |   7 -
 target/hppa/translate.c                       |  93 +--
 target/i386/tcg/translate.c                   |  41 --
 target/loongarch/translate.c                  |  21 +-
 target/m68k/translate.c                       | 276 +-------
 target/microblaze/translate.c                 |  54 --
 target/mips/tcg/msa_translate.c               |   9 -
 target/mips/tcg/mxu_translate.c               |  51 --
 target/mips/tcg/octeon_translate.c            |  23 -
 target/mips/tcg/translate.c                   | 537 +-------------
 target/mips/tcg/translate_addr_const.c        |   7 -
 target/mips/tcg/tx79_translate.c              |  41 --
 target/mips/tcg/vr54xx_translate.c            |   6 +-
 target/nios2/translate.c                      |  15 -
 target/openrisc/translate.c                   |  39 -
 target/ppc/translate.c                        | 285 --------
 target/riscv/translate.c                      |  61 +-
 target/rx/translate.c                         |  84 ---
 target/s390x/tcg/translate.c                  | 668 +++++-------------
 target/sh4/translate.c                        | 110 ---
 target/sparc/translate.c                      | 259 +------
 target/tricore/translate.c                    | 540 +-------------
 target/xtensa/translate.c                     | 121 +---
 tcg/tcg-op-gvec.c                             |   1 +
 tcg/tcg-op-vec.c                              |   1 +
 tcg/tcg-op.c                                  |   1 +
 tcg/tcg.c                                     |  55 +-
 target/cris/translate_v10.c.inc               |  49 +-
 target/i386/tcg/decode-new.c.inc              |  15 -
 target/i386/tcg/emit.c.inc                    |   6 -
 target/loongarch/insn_trans/trans_arith.c.inc |  12 -
 .../loongarch/insn_trans/trans_atomic.c.inc   |   3 -
 target/loongarch/insn_trans/trans_bit.c.inc   |  12 -
 target/loongarch/insn_trans/trans_fcmp.c.inc  |   3 -
 .../loongarch/insn_trans/trans_fmemory.c.inc  |  20 +-
 target/loongarch/insn_trans/trans_fmov.c.inc  |   6 -
 .../loongarch/insn_trans/trans_memory.c.inc   |  34 +-
 .../insn_trans/trans_privileged.c.inc         |   6 +-
 target/loongarch/insn_trans/trans_shift.c.inc |  11 -
 target/mips/tcg/micromips_translate.c.inc     |   8 -
 target/mips/tcg/mips16e_translate.c.inc       |   6 -
 target/mips/tcg/nanomips_translate.c.inc      | 127 +---
 target/ppc/power8-pmu-regs.c.inc              |  16 -
 target/ppc/translate/dfp-impl.c.inc           |  20 -
 target/ppc/translate/fixedpoint-impl.c.inc    |  16 -
 target/ppc/translate/fp-impl.c.inc            | 122 +---
 target/ppc/translate/spe-impl.c.inc           |  59 --
 target/ppc/translate/storage-ctrl-impl.c.inc  |   2 -
 target/ppc/translate/vmx-impl.c.inc           | 296 +-------
 target/ppc/translate/vsx-impl.c.inc           | 287 +-------
 target/riscv/insn_trans/trans_rvb.c.inc       |  24 -
 target/riscv/insn_trans/trans_rvd.c.inc       |   2 -
 target/riscv/insn_trans/trans_rvf.c.inc       |   9 -
 target/riscv/insn_trans/trans_rvi.c.inc       |  37 -
 target/riscv/insn_trans/trans_rvk.c.inc       |  15 -
 target/riscv/insn_trans/trans_rvm.c.inc       |  33 -
 target/riscv/insn_trans/trans_rvv.c.inc       |  55 --
 target/riscv/insn_trans/trans_rvzfh.c.inc     |  12 +-
 target/riscv/insn_trans/trans_xthead.c.inc    |  24 +-
 target/s390x/tcg/translate_vx.c.inc           | 188 +----
 scripts/tracetool/__init__.py                 |  23 -
 scripts/tracetool/transform.py                | 168 -----
 target/hexagon/README                         |   5 -
 target/hexagon/gen_tcg_funcs.py               |  79 +--
 target/hexagon/idef-parser/idef-parser.y      |  12 -
 95 files changed, 471 insertions(+), 7165 deletions(-)
 create mode 100644 include/tcg/tcg-temp-internal.h
 delete mode 100644 scripts/tracetool/transform.py

Comments

Mark Cave-Ayland March 1, 2023, 5:01 p.m. UTC | #1
On 27/02/2023 05:23, Richard Henderson wrote:

> Based-on: 20230225085945.1798188-1-richard.henderson@linaro.org
> ("[PATCH v3 00/30] tcg: Simplify temporary usage")
> 
> In the above patch set, we changed the lifetime of the temps
> allocated by the guest translators, and eliminated their reuse,
> so that we have the best chance of reducing their strength.
> 
> That we don't reuse them means that we gain nothing by freeing them.
> Therefore, drop all mention of tcg_temp_free from target/.
> 
> Changes for v2:
>    * Apply r-b.
>    * Fix 74/76 "tracing: remove transform.py".
> 
> 
> r~
> 
> 
> Richard Henderson (76):
>    tcg: Remove tcg_check_temp_count, tcg_clear_temp_count
>    accel/tcg: Remove translator_loop_temp_check
>    target/alpha: Drop tcg_temp_free
>    target/arm: Remove arm_free_cc, a64_free_cc
>    target/arm: Remove value_global from DisasCompare
>    target/arm: Drop tcg_temp_free from translator.c
>    target/arm: Drop DisasContext.tmp_a64
>    target/arm: Drop new_tmp_a64
>    target/arm: Drop new_tmp_a64_zero
>    target/arm: Drop tcg_temp_free from translator-a64.c
>    target/arm: Drop tcg_temp_free from translator-m-nocp.c
>    target/arm: Drop tcg_temp_free from translator-mve.c
>    target/arm: Drop tcg_temp_free from translator-neon.c
>    target/arm: Drop tcg_temp_free from translator-sme.c
>    target/arm: Drop tcg_temp_free from translator-sve.c
>    target/arm: Drop tcg_temp_free from translator-vfp.c
>    target/arm: Drop tcg_temp_free from translator.h
>    target/avr: Drop DisasContext.free_skip_var0
>    target/avr: Drop R from trans_COM
>    target/avr: Drop tcg_temp_free
>    target/cris: Drop cris_alu_free_temps
>    target/cris: Drop cris_alu_m_free_temps
>    target/cris: Drop addr from dec10_ind_move_m_pr
>    target/cris: Drop tcg_temp_free
>    target/hexagon: Drop tcg_temp_free from C code
>    target/hexagon: Drop tcg_temp_free from gen_tcg_funcs.py
>    target/hexagon/idef-parser: Drop tcg_temp_free
>    target/hexagon/idef-parser: Drop HexValue.is_manual
>    target/hppa: Drop tcg_temp_free
>    target/i386: Drop tcg_temp_free
>    target/loongarch: Drop temp_new
>    target/loongarch: Drop tcg_temp_free
>    target/m68k: Drop mark_to_release
>    target/m68k: Drop free_cond
>    target/m68k: Drop tcg_temp_free
>    target/microblaze: Drop tcg_temp_free
>    target/mips: Drop tcg_temp_free from micromips_translate.c.inc
>    target/mips: Drop tcg_temp_free from mips16e_translate.c.inc
>    target/mips: Drop tcg_temp_free from msa_translate.c
>    target/mips: Drop tcg_temp_free from mxu_translate.c
>    target/mips: Drop tcg_temp_free from nanomips_translate.c.inc
>    target/mips: Drop tcg_temp_free from octeon_translate.c
>    target/mips: Drop tcg_temp_free from translate_addr_const.c
>    target/mips: Drop tcg_temp_free from tx79_translate.c
>    target/mips: Fix trans_mult_acc return
>    target/mips: Drop tcg_temp_free from vr54xx_translate.c
>    target/mips: Drop tcg_temp_free from translate.c
>    target/nios2: Drop tcg_temp_free
>    target/openrisc: Drop tcg_temp_free
>    target/ppc: Drop tcg_temp_free
>    target/riscv: Drop ftemp_new
>    target/riscv: Drop temp_new
>    target/riscv: Drop tcg_temp_free
>    target/rx: Drop tcg_temp_free
>    target/s390x: Use tcg_constant_* in local contexts
>    target/s390x: Use tcg_constant_* for DisasCompare
>    target/s390x: Use tcg_constant_i32 for fpinst_extract_m34
>    target/s390x: Use tcg_constant_* in translate_vx.c.inc
>    target/s390x: Drop free_compare
>    target/s390x: Drop tcg_temp_free from translate_vx.c.inc
>    target/s390x: Drop tcg_temp_free from translate.c
>    target/s390x: Remove assert vs g_in2
>    target/s390x: Remove g_out, g_out2, g_in1, g_in2 from DisasContext
>    target/sh4: Drop tcg_temp_free
>    target/sparc: Drop get_temp_tl
>    target/sparc: Drop get_temp_i32
>    target/sparc: Remove egress label in disas_sparc_context
>    target/sparc: Drop free_compare
>    target/sparc: Drop tcg_temp_free
>    target/tricore: Drop tcg_temp_free
>    target/xtensa: Drop reset_sar_tracker
>    target/xtensa: Drop tcg_temp_free
>    include/exec/gen-icount: Drop tcg_temp_free in gen_tb_start
>    tracing: remove transform.py
>    tcg: Create tcg/tcg-temp-internal.h
>    docs/devel/tcg-ops: Drop recommendation to free temps
> 
>   docs/devel/tcg-ops.rst                        |   4 -
>   target/hexagon/idef-parser/README.rst         |   8 -
>   meson.build                                   |   1 -
>   include/exec/gen-icount.h                     |   2 -
>   include/exec/translator.h                     |   2 -
>   include/tcg/tcg-temp-internal.h               |  83 +++
>   include/tcg/tcg.h                             |  68 --
>   target/arm/translate-a64.h                    |   2 -
>   target/arm/translate.h                        |   7 -
>   target/hexagon/gen_tcg.h                      |  29 -
>   target/hexagon/gen_tcg_hvx.h                  |  15 -
>   target/hexagon/idef-parser/idef-parser.h      |   1 -
>   target/hexagon/idef-parser/parser-helpers.h   |   4 -
>   target/hexagon/macros.h                       |   7 -
>   target/loongarch/translate.h                  |   3 -
>   accel/tcg/plugin-gen.c                        |   1 +
>   accel/tcg/translator.c                        |  16 -
>   target/alpha/translate.c                      |  71 --
>   target/arm/translate-a64.c                    | 594 ++--------------
>   target/arm/translate-m-nocp.c                 |  20 -
>   target/arm/translate-mve.c                    |  52 --
>   target/arm/translate-neon.c                   | 131 +---
>   target/arm/translate-sme.c                    |  28 -
>   target/arm/translate-sve.c                    | 206 +-----
>   target/arm/translate-vfp.c                    | 193 -----
>   target/arm/translate.c                        | 281 +-------
>   target/avr/translate.c                        | 251 -------
>   target/cris/translate.c                       | 113 ---
>   target/hexagon/genptr.c                       |  58 --
>   target/hexagon/idef-parser/parser-helpers.c   | 157 ----
>   target/hexagon/translate.c                    |   7 -
>   target/hppa/translate.c                       |  93 +--
>   target/i386/tcg/translate.c                   |  41 --
>   target/loongarch/translate.c                  |  21 +-
>   target/m68k/translate.c                       | 276 +-------
>   target/microblaze/translate.c                 |  54 --
>   target/mips/tcg/msa_translate.c               |   9 -
>   target/mips/tcg/mxu_translate.c               |  51 --
>   target/mips/tcg/octeon_translate.c            |  23 -
>   target/mips/tcg/translate.c                   | 537 +-------------
>   target/mips/tcg/translate_addr_const.c        |   7 -
>   target/mips/tcg/tx79_translate.c              |  41 --
>   target/mips/tcg/vr54xx_translate.c            |   6 +-
>   target/nios2/translate.c                      |  15 -
>   target/openrisc/translate.c                   |  39 -
>   target/ppc/translate.c                        | 285 --------
>   target/riscv/translate.c                      |  61 +-
>   target/rx/translate.c                         |  84 ---
>   target/s390x/tcg/translate.c                  | 668 +++++-------------
>   target/sh4/translate.c                        | 110 ---
>   target/sparc/translate.c                      | 259 +------
>   target/tricore/translate.c                    | 540 +-------------
>   target/xtensa/translate.c                     | 121 +---
>   tcg/tcg-op-gvec.c                             |   1 +
>   tcg/tcg-op-vec.c                              |   1 +
>   tcg/tcg-op.c                                  |   1 +
>   tcg/tcg.c                                     |  55 +-
>   target/cris/translate_v10.c.inc               |  49 +-
>   target/i386/tcg/decode-new.c.inc              |  15 -
>   target/i386/tcg/emit.c.inc                    |   6 -
>   target/loongarch/insn_trans/trans_arith.c.inc |  12 -
>   .../loongarch/insn_trans/trans_atomic.c.inc   |   3 -
>   target/loongarch/insn_trans/trans_bit.c.inc   |  12 -
>   target/loongarch/insn_trans/trans_fcmp.c.inc  |   3 -
>   .../loongarch/insn_trans/trans_fmemory.c.inc  |  20 +-
>   target/loongarch/insn_trans/trans_fmov.c.inc  |   6 -
>   .../loongarch/insn_trans/trans_memory.c.inc   |  34 +-
>   .../insn_trans/trans_privileged.c.inc         |   6 +-
>   target/loongarch/insn_trans/trans_shift.c.inc |  11 -
>   target/mips/tcg/micromips_translate.c.inc     |   8 -
>   target/mips/tcg/mips16e_translate.c.inc       |   6 -
>   target/mips/tcg/nanomips_translate.c.inc      | 127 +---
>   target/ppc/power8-pmu-regs.c.inc              |  16 -
>   target/ppc/translate/dfp-impl.c.inc           |  20 -
>   target/ppc/translate/fixedpoint-impl.c.inc    |  16 -
>   target/ppc/translate/fp-impl.c.inc            | 122 +---
>   target/ppc/translate/spe-impl.c.inc           |  59 --
>   target/ppc/translate/storage-ctrl-impl.c.inc  |   2 -
>   target/ppc/translate/vmx-impl.c.inc           | 296 +-------
>   target/ppc/translate/vsx-impl.c.inc           | 287 +-------
>   target/riscv/insn_trans/trans_rvb.c.inc       |  24 -
>   target/riscv/insn_trans/trans_rvd.c.inc       |   2 -
>   target/riscv/insn_trans/trans_rvf.c.inc       |   9 -
>   target/riscv/insn_trans/trans_rvi.c.inc       |  37 -
>   target/riscv/insn_trans/trans_rvk.c.inc       |  15 -
>   target/riscv/insn_trans/trans_rvm.c.inc       |  33 -
>   target/riscv/insn_trans/trans_rvv.c.inc       |  55 --
>   target/riscv/insn_trans/trans_rvzfh.c.inc     |  12 +-
>   target/riscv/insn_trans/trans_xthead.c.inc    |  24 +-
>   target/s390x/tcg/translate_vx.c.inc           | 188 +----
>   scripts/tracetool/__init__.py                 |  23 -
>   scripts/tracetool/transform.py                | 168 -----
>   target/hexagon/README                         |   5 -
>   target/hexagon/gen_tcg_funcs.py               |  79 +--
>   target/hexagon/idef-parser/idef-parser.y      |  12 -
>   95 files changed, 471 insertions(+), 7165 deletions(-)
>   create mode 100644 include/tcg/tcg-temp-internal.h
>   delete mode 100644 scripts/tracetool/transform.py

For the SPARC parts:

Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.
Peter Maydell March 3, 2023, 7:11 p.m. UTC | #2
On Mon, 27 Feb 2023 at 05:29, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> Based-on: 20230225085945.1798188-1-richard.henderson@linaro.org
> ("[PATCH v3 00/30] tcg: Simplify temporary usage")
>
> In the above patch set, we changed the lifetime of the temps
> allocated by the guest translators, and eliminated their reuse,
> so that we have the best chance of reducing their strength.
>
> That we don't reuse them means that we gain nothing by freeing them.
> Therefore, drop all mention of tcg_temp_free from target/.
>
> Changes for v2:
>   * Apply r-b.
>   * Fix 74/76 "tracing: remove transform.py".

>  95 files changed, 471 insertions(+), 7165 deletions(-)

The diffstat is really nice here :-)

I've reviewed the general stuff (except the python patch),
the arm parts, and some of the orphaned/minor targets that
might otherwise struggle to get review.

thanks
-- PMM