From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, "Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH v3 05/30] tcg: Rename TEMP_LOCAL to TEMP_TB
Date: Fri, 24 Feb 2023 22:59:20 -1000 [thread overview]
Message-ID: <20230225085945.1798188-6-richard.henderson@linaro.org> (raw)
In-Reply-To: <20230225085945.1798188-1-richard.henderson@linaro.org>
Use TEMP_TB as that is more explicit about the default
lifetime of the data. While "global" and "local" used
to be contrasting, we have more lifetimes than that now.
Do not yet rename tcg_temp_local_new_*, just the enum.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/tcg/tcg.h | 12 ++++++++----
tcg/optimize.c | 2 +-
tcg/tcg.c | 18 +++++++++---------
3 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h
index 59854f95b1..2010e746ca 100644
--- a/include/tcg/tcg.h
+++ b/include/tcg/tcg.h
@@ -433,11 +433,15 @@ typedef enum TCGTempVal {
typedef enum TCGTempKind {
/* Temp is dead at the end of all basic blocks. */
TEMP_NORMAL,
- /* Temp is live across conditional branch, but dead otherwise. */
+ /*
+ * Temp is dead at the end of the extended basic block (EBB),
+ * the single-entry multiple-exit region that falls through
+ * conditional branches.
+ */
TEMP_EBB,
- /* Temp is saved across basic blocks but dead at the end of TBs. */
- TEMP_LOCAL,
- /* Temp is saved across both basic blocks and translation blocks. */
+ /* Temp is live across the entire translation block, but dead at end. */
+ TEMP_TB,
+ /* Temp is live across the entire translation block, and between them. */
TEMP_GLOBAL,
/* Temp is in a fixed register. */
TEMP_FIXED,
diff --git a/tcg/optimize.c b/tcg/optimize.c
index 763bca9ea6..ce05989c39 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -190,7 +190,7 @@ static TCGTemp *find_better_copy(TCGContext *s, TCGTemp *ts)
} else if (i->kind > ts->kind) {
if (i->kind == TEMP_GLOBAL) {
g = i;
- } else if (i->kind == TEMP_LOCAL) {
+ } else if (i->kind == TEMP_TB) {
l = i;
}
}
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 0992fb4f31..bf2af8b0fe 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -1258,7 +1258,7 @@ TCGTemp *tcg_global_mem_new_internal(TCGType type, TCGv_ptr base,
TCGTemp *tcg_temp_new_internal(TCGType type, bool temp_local)
{
TCGContext *s = tcg_ctx;
- TCGTempKind kind = temp_local ? TEMP_LOCAL : TEMP_NORMAL;
+ TCGTempKind kind = temp_local ? TEMP_TB : TEMP_NORMAL;
TCGTemp *ts;
int idx, k;
@@ -1369,7 +1369,7 @@ void tcg_temp_free_internal(TCGTemp *ts)
*/
return;
case TEMP_NORMAL:
- case TEMP_LOCAL:
+ case TEMP_TB:
break;
default:
g_assert_not_reached();
@@ -1915,7 +1915,7 @@ static void tcg_reg_alloc_start(TCGContext *s)
case TEMP_EBB:
val = TEMP_VAL_DEAD;
/* fall through */
- case TEMP_LOCAL:
+ case TEMP_TB:
ts->mem_allocated = 0;
break;
default:
@@ -1937,7 +1937,7 @@ static char *tcg_get_arg_str_ptr(TCGContext *s, char *buf, int buf_size,
case TEMP_GLOBAL:
pstrcpy(buf, buf_size, ts->name);
break;
- case TEMP_LOCAL:
+ case TEMP_TB:
snprintf(buf, buf_size, "loc%d", idx - s->nb_globals);
break;
case TEMP_EBB:
@@ -2759,7 +2759,7 @@ static void la_bb_end(TCGContext *s, int ng, int nt)
switch (ts->kind) {
case TEMP_FIXED:
case TEMP_GLOBAL:
- case TEMP_LOCAL:
+ case TEMP_TB:
state = TS_DEAD | TS_MEM;
break;
case TEMP_NORMAL:
@@ -2804,7 +2804,7 @@ static void la_bb_sync(TCGContext *s, int ng, int nt)
int state;
switch (ts->kind) {
- case TEMP_LOCAL:
+ case TEMP_TB:
state = ts->state;
ts->state = state | TS_MEM;
if (state != TS_DEAD) {
@@ -3497,7 +3497,7 @@ static void temp_free_or_dead(TCGContext *s, TCGTemp *ts, int free_or_dead)
case TEMP_FIXED:
return;
case TEMP_GLOBAL:
- case TEMP_LOCAL:
+ case TEMP_TB:
new_type = TEMP_VAL_MEM;
break;
case TEMP_NORMAL:
@@ -3785,7 +3785,7 @@ static void tcg_reg_alloc_bb_end(TCGContext *s, TCGRegSet allocated_regs)
TCGTemp *ts = &s->temps[i];
switch (ts->kind) {
- case TEMP_LOCAL:
+ case TEMP_TB:
temp_save(s, ts, allocated_regs);
break;
case TEMP_NORMAL:
@@ -3822,7 +3822,7 @@ static void tcg_reg_alloc_cbranch(TCGContext *s, TCGRegSet allocated_regs)
* Keep tcg_debug_asserts for safety.
*/
switch (ts->kind) {
- case TEMP_LOCAL:
+ case TEMP_TB:
tcg_debug_assert(ts->val_type != TEMP_VAL_REG || ts->mem_coherent);
break;
case TEMP_NORMAL:
--
2.34.1
next prev parent reply other threads:[~2023-02-25 9:02 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-25 8:59 [PATCH v3 00/30] tcg: Simplify temporary usage Richard Henderson
2023-02-25 8:59 ` [PATCH v3 01/30] tcg: Adjust TCGContext.temps_in_use check Richard Henderson
2023-02-25 8:59 ` [PATCH v3 02/30] accel/tcg: Pass max_insn to gen_intermediate_code by pointer Richard Henderson
2023-02-25 8:59 ` [PATCH v3 03/30] accel/tcg: Use more accurate max_insns for tb_overflow Richard Henderson
2023-02-25 8:59 ` [PATCH v3 04/30] tcg: Remove branch-to-next regardless of reference count Richard Henderson
2023-02-25 8:59 ` Richard Henderson [this message]
2023-02-25 8:59 ` [PATCH v3 06/30] tcg: Use noinline for major tcg_gen_code subroutines Richard Henderson
2023-02-25 8:59 ` [PATCH v3 07/30] tcg: Add liveness_pass_0 Richard Henderson
2023-02-25 8:59 ` [PATCH v3 08/30] tcg: Remove TEMP_NORMAL Richard Henderson
2023-02-25 8:59 ` [PATCH v3 09/30] tcg: Pass TCGTempKind to tcg_temp_new_internal Richard Henderson
2023-02-25 8:59 ` [PATCH v3 10/30] tcg: Use tcg_constant_i32 in tcg_gen_io_start Richard Henderson
2023-02-25 9:34 ` Daniel Henrique Barboza
2023-02-25 9:57 ` Philippe Mathieu-Daudé
2023-02-25 8:59 ` [PATCH v3 11/30] tcg: Add tcg_gen_movi_ptr Richard Henderson
2023-02-25 8:59 ` [PATCH v3 12/30] tcg: Add tcg_temp_ebb_new_{i32,i64,ptr} Richard Henderson
2023-02-25 8:59 ` [PATCH v3 13/30] tcg: Use tcg_temp_ebb_new_* in tcg/ Richard Henderson
2023-02-25 8:59 ` [PATCH v3 14/30] tcg: Use tcg_constant_ptr in do_dup Richard Henderson
2023-02-25 9:35 ` Daniel Henrique Barboza
2023-02-25 9:53 ` Philippe Mathieu-Daudé
2023-02-25 10:01 ` Richard Henderson
2023-02-25 8:59 ` [PATCH v3 15/30] accel/tcg/plugin: Use tcg_temp_ebb_* Richard Henderson
2023-02-25 8:59 ` [PATCH v3 16/30] accel/tcg/plugin: Tidy plugin_gen_disable_mem_helpers Richard Henderson
2023-02-25 8:59 ` [PATCH v3 17/30] tcg: Don't re-use TEMP_TB temporaries Richard Henderson
2023-02-25 8:59 ` [PATCH v3 18/30] tcg: Change default temp lifetime to TEMP_TB Richard Henderson
2023-02-25 8:59 ` [PATCH v3 19/30] target/arm: Drop copies in gen_sve_{ldr,str} Richard Henderson
2023-02-25 8:59 ` [PATCH v3 20/30] target/arm: Don't use tcg_temp_local_new_* Richard Henderson
2023-02-25 10:05 ` Philippe Mathieu-Daudé
2023-02-25 10:09 ` Richard Henderson
2023-02-25 10:13 ` Philippe Mathieu-Daudé
2023-02-25 8:59 ` [PATCH v3 21/30] target/cris: Don't use tcg_temp_local_new Richard Henderson
2023-02-25 8:59 ` [PATCH v3 22/30] target/hexagon: Don't use tcg_temp_local_new_* Richard Henderson
2023-02-25 8:59 ` [PATCH v3 23/30] target/hppa: Don't use tcg_temp_local_new Richard Henderson
2023-02-25 8:59 ` [PATCH v3 24/30] target/i386: " Richard Henderson
2023-02-25 8:59 ` [PATCH v3 25/30] target/mips: " Richard Henderson
2023-02-25 8:59 ` [PATCH v3 26/30] target/ppc: " Richard Henderson
2023-02-25 8:59 ` [PATCH v3 27/30] target/xtensa: Don't use tcg_temp_local_new_* Richard Henderson
2023-02-25 8:59 ` [PATCH v3 28/30] exec/gen-icount: Don't use tcg_temp_local_new_i32 Richard Henderson
2023-02-25 8:59 ` [PATCH v3 29/30] tcg: Remove tcg_temp_local_new_*, tcg_const_local_* Richard Henderson
2023-02-25 8:59 ` [PATCH v3 30/30] tcg: Update docs/devel/tcg-ops.rst for temporary changes Richard Henderson
2023-02-25 9:54 ` Daniel Henrique Barboza
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230225085945.1798188-6-richard.henderson@linaro.org \
--to=richard.henderson@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).