All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/31] tcg: Simplify temporary usage
@ 2023-02-27  5:36 Richard Henderson
  2023-02-27  5:36 ` [PATCH v4 01/31] tcg: Adjust TCGContext.temps_in_use check Richard Henderson
                   ` (30 more replies)
  0 siblings, 31 replies; 37+ messages in thread
From: Richard Henderson @ 2023-02-27  5:36 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-arm, qemu-ppc, qemu-riscv, qemu-s390x, jcmvbkbc, kbastian,
	ysato, gaosong, jiaxun.yang, tsimpson, ale, mrolnik,
	edgar.iglesias

The biggest pitfall for new users of TCG is the fact that "normal"
temporaries die at branches, and we must therefore use a different
"local" temporary in that case.

The following patch set changes that, so that the "normal" temporary
is the one that lives across branches, and there is a special temporary
that dies at the end of the extended basic block, and this special
case is reserved for tcg internals.

Changes for v4:
  * Add patch 23, target/hexagon/idef-parser: Drop gen_tmp_local

Patches lacking review:
  07-tcg-Add-liveness_pass_0.patch
  17-tcg-Don-t-re-use-TEMP_TB-temporaries.patch
  23-target-hexagon-idef-parser-Drop-gen_tmp_local.patch


r~


Richard Henderson (31):
  tcg: Adjust TCGContext.temps_in_use check
  accel/tcg: Pass max_insn to gen_intermediate_code by pointer
  accel/tcg: Use more accurate max_insns for tb_overflow
  tcg: Remove branch-to-next regardless of reference count
  tcg: Rename TEMP_LOCAL to TEMP_TB
  tcg: Use noinline for major tcg_gen_code subroutines
  tcg: Add liveness_pass_0
  tcg: Remove TEMP_NORMAL
  tcg: Pass TCGTempKind to tcg_temp_new_internal
  tcg: Use tcg_constant_i32 in tcg_gen_io_start
  tcg: Add tcg_gen_movi_ptr
  tcg: Add tcg_temp_ebb_new_{i32,i64,ptr}
  tcg: Use tcg_temp_ebb_new_* in tcg/
  tcg: Use tcg_constant_ptr in do_dup
  accel/tcg/plugin: Use tcg_temp_ebb_*
  accel/tcg/plugin: Tidy plugin_gen_disable_mem_helpers
  tcg: Don't re-use TEMP_TB temporaries
  tcg: Change default temp lifetime to TEMP_TB
  target/arm: Drop copies in gen_sve_{ldr,str}
  target/arm: Don't use tcg_temp_local_new_*
  target/cris: Don't use tcg_temp_local_new
  target/hexagon: Don't use tcg_temp_local_new_*
  target/hexagon/idef-parser: Drop gen_tmp_local
  target/hppa: Don't use tcg_temp_local_new
  target/i386: Don't use tcg_temp_local_new
  target/mips: Don't use tcg_temp_local_new
  target/ppc: Don't use tcg_temp_local_new
  target/xtensa: Don't use tcg_temp_local_new_*
  exec/gen-icount: Don't use tcg_temp_local_new_i32
  tcg: Remove tcg_temp_local_new_*, tcg_const_local_*
  tcg: Update docs/devel/tcg-ops.rst for temporary changes

 docs/devel/tcg-ops.rst                      | 230 +++++++++-------
 target/hexagon/idef-parser/README.rst       |   4 +-
 include/exec/gen-icount.h                   |  12 +-
 include/exec/translator.h                   |   4 +-
 include/tcg/tcg-op.h                        |   7 +-
 include/tcg/tcg.h                           |  64 ++---
 target/arm/translate-a64.h                  |   1 -
 target/hexagon/gen_tcg.h                    |   4 +-
 accel/tcg/plugin-gen.c                      |  32 +--
 accel/tcg/translate-all.c                   |   2 +-
 accel/tcg/translator.c                      |   6 +-
 target/alpha/translate.c                    |   2 +-
 target/arm/translate-a64.c                  |   6 -
 target/arm/translate-sve.c                  |  38 +--
 target/arm/translate.c                      |   8 +-
 target/avr/translate.c                      |   2 +-
 target/cris/translate.c                     |   8 +-
 target/hexagon/genptr.c                     |  16 +-
 target/hexagon/idef-parser/parser-helpers.c |  26 +-
 target/hexagon/translate.c                  |   4 +-
 target/hppa/translate.c                     |   5 +-
 target/i386/tcg/translate.c                 |  29 +-
 target/loongarch/translate.c                |   2 +-
 target/m68k/translate.c                     |   2 +-
 target/microblaze/translate.c               |   2 +-
 target/mips/tcg/translate.c                 |  59 ++---
 target/nios2/translate.c                    |   2 +-
 target/openrisc/translate.c                 |   2 +-
 target/ppc/translate.c                      |   8 +-
 target/riscv/translate.c                    |   2 +-
 target/rx/translate.c                       |   2 +-
 target/s390x/tcg/translate.c                |   2 +-
 target/sh4/translate.c                      |   2 +-
 target/sparc/translate.c                    |   2 +-
 target/tricore/translate.c                  |   2 +-
 target/xtensa/translate.c                   |  18 +-
 tcg/optimize.c                              |   2 +-
 tcg/tcg-op-gvec.c                           | 189 +++++++------
 tcg/tcg-op.c                                | 258 +++++++++---------
 tcg/tcg.c                                   | 280 ++++++++++++--------
 target/cris/translate_v10.c.inc             |  10 +-
 target/mips/tcg/nanomips_translate.c.inc    |   4 +-
 target/ppc/translate/spe-impl.c.inc         |   8 +-
 target/ppc/translate/vmx-impl.c.inc         |   4 +-
 target/hexagon/README                       |   8 +-
 target/hexagon/gen_tcg_funcs.py             |  18 +-
 46 files changed, 682 insertions(+), 716 deletions(-)

-- 
2.34.1



^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2023-02-28 17:49 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-27  5:36 [PATCH v4 00/31] tcg: Simplify temporary usage Richard Henderson
2023-02-27  5:36 ` [PATCH v4 01/31] tcg: Adjust TCGContext.temps_in_use check Richard Henderson
2023-02-27  5:36 ` [PATCH v4 02/31] accel/tcg: Pass max_insn to gen_intermediate_code by pointer Richard Henderson
2023-02-27  5:36 ` [PATCH v4 03/31] accel/tcg: Use more accurate max_insns for tb_overflow Richard Henderson
2023-02-27  5:36 ` [PATCH v4 04/31] tcg: Remove branch-to-next regardless of reference count Richard Henderson
2023-02-27  5:36 ` [PATCH v4 05/31] tcg: Rename TEMP_LOCAL to TEMP_TB Richard Henderson
2023-02-27  5:36 ` [PATCH v4 06/31] tcg: Use noinline for major tcg_gen_code subroutines Richard Henderson
2023-02-27  5:36 ` [PATCH v4 07/31] tcg: Add liveness_pass_0 Richard Henderson
2023-02-28 17:29   ` Alex Bennée
2023-02-27  5:36 ` [PATCH v4 08/31] tcg: Remove TEMP_NORMAL Richard Henderson
2023-02-27  5:36 ` [PATCH v4 09/31] tcg: Pass TCGTempKind to tcg_temp_new_internal Richard Henderson
2023-02-27  5:36 ` [PATCH v4 10/31] tcg: Use tcg_constant_i32 in tcg_gen_io_start Richard Henderson
2023-02-27  5:36 ` [PATCH v4 11/31] tcg: Add tcg_gen_movi_ptr Richard Henderson
2023-02-27  5:36 ` [PATCH v4 12/31] tcg: Add tcg_temp_ebb_new_{i32,i64,ptr} Richard Henderson
2023-02-27  5:36 ` [PATCH v4 13/31] tcg: Use tcg_temp_ebb_new_* in tcg/ Richard Henderson
2023-02-27  5:36 ` [PATCH v4 14/31] tcg: Use tcg_constant_ptr in do_dup Richard Henderson
2023-02-27  5:36 ` [PATCH v4 15/31] accel/tcg/plugin: Use tcg_temp_ebb_* Richard Henderson
2023-02-27  5:36 ` [PATCH v4 16/31] accel/tcg/plugin: Tidy plugin_gen_disable_mem_helpers Richard Henderson
2023-02-27  5:36 ` [PATCH v4 17/31] tcg: Don't re-use TEMP_TB temporaries Richard Henderson
2023-02-28 17:48   ` Alex Bennée
2023-02-27  5:36 ` [PATCH v4 18/31] tcg: Change default temp lifetime to TEMP_TB Richard Henderson
2023-02-27  5:36 ` [PATCH v4 19/31] target/arm: Drop copies in gen_sve_{ldr,str} Richard Henderson
2023-02-27  5:36 ` [PATCH v4 20/31] target/arm: Don't use tcg_temp_local_new_* Richard Henderson
2023-02-27  5:36 ` [PATCH v4 21/31] target/cris: Don't use tcg_temp_local_new Richard Henderson
2023-02-27  5:36 ` [PATCH v4 22/31] target/hexagon: Don't use tcg_temp_local_new_* Richard Henderson
2023-02-27 17:33   ` Taylor Simpson
2023-02-27  5:36 ` [PATCH v4 23/31] target/hexagon/idef-parser: Drop gen_tmp_local Richard Henderson
2023-02-27  7:19   ` Philippe Mathieu-Daudé
2023-02-27 17:35   ` Taylor Simpson
2023-02-27  5:36 ` [PATCH v4 24/31] target/hppa: Don't use tcg_temp_local_new Richard Henderson
2023-02-27  5:36 ` [PATCH v4 25/31] target/i386: " Richard Henderson
2023-02-27  5:36 ` [PATCH v4 26/31] target/mips: " Richard Henderson
2023-02-27  5:36 ` [PATCH v4 27/31] target/ppc: " Richard Henderson
2023-02-27  5:36 ` [PATCH v4 28/31] target/xtensa: Don't use tcg_temp_local_new_* Richard Henderson
2023-02-27  5:36 ` [PATCH v4 29/31] exec/gen-icount: Don't use tcg_temp_local_new_i32 Richard Henderson
2023-02-27  5:37 ` [PATCH v4 30/31] tcg: Remove tcg_temp_local_new_*, tcg_const_local_* Richard Henderson
2023-02-27  5:37 ` [PATCH v4 31/31] tcg: Update docs/devel/tcg-ops.rst for temporary changes Richard Henderson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.