[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 39/62] tcg: Remove TEMP_NORMAL
From: |
Richard Henderson |
Subject: |
[PULL 39/62] tcg: Remove TEMP_NORMAL |
Date: |
Tue, 28 Feb 2023 16:56:20 -1000 |
TEMP_NORMAL is a subset of TEMP_EBB. Promote single basic
block temps to single extended basic block.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/tcg/tcg.h | 2 --
tcg/tcg.c | 19 +++----------------
2 files changed, 3 insertions(+), 18 deletions(-)
diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h
index 2010e746ca..02d5cfc049 100644
--- a/include/tcg/tcg.h
+++ b/include/tcg/tcg.h
@@ -431,8 +431,6 @@ typedef enum TCGTempVal {
} TCGTempVal;
typedef enum TCGTempKind {
- /* Temp is dead at the end of all basic blocks. */
- TEMP_NORMAL,
/*
* Temp is dead at the end of the extended basic block (EBB),
* the single-entry multiple-exit region that falls through
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 1dbb24294e..9be3632b94 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -1257,7 +1257,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_TB : TEMP_NORMAL;
+ TCGTempKind kind = temp_local ? TEMP_TB : TEMP_EBB;
TCGTemp *ts;
int idx, k;
@@ -1367,7 +1367,7 @@ void tcg_temp_free_internal(TCGTemp *ts)
* silently ignore free.
*/
return;
- case TEMP_NORMAL:
+ case TEMP_EBB:
case TEMP_TB:
break;
default:
@@ -1383,7 +1383,7 @@ void tcg_temp_free_internal(TCGTemp *ts)
#endif
idx = temp_idx(ts);
- k = ts->base_type + (ts->kind == TEMP_NORMAL ? 0 : TCG_TYPE_COUNT);
+ k = ts->base_type + (ts->kind == TEMP_EBB ? 0 : TCG_TYPE_COUNT);
set_bit(idx, s->free_temps[k].l);
}
@@ -1910,7 +1910,6 @@ static void tcg_reg_alloc_start(TCGContext *s)
break;
case TEMP_GLOBAL:
break;
- case TEMP_NORMAL:
case TEMP_EBB:
val = TEMP_VAL_DEAD;
/* fall through */
@@ -1940,9 +1939,6 @@ static char *tcg_get_arg_str_ptr(TCGContext *s, char
*buf, int buf_size,
snprintf(buf, buf_size, "loc%d", idx - s->nb_globals);
break;
case TEMP_EBB:
- snprintf(buf, buf_size, "ebb%d", idx - s->nb_globals);
- break;
- case TEMP_NORMAL:
snprintf(buf, buf_size, "tmp%d", idx - s->nb_globals);
break;
case TEMP_CONST:
@@ -2762,7 +2758,6 @@ static void la_bb_end(TCGContext *s, int ng, int nt)
case TEMP_TB:
state = TS_DEAD | TS_MEM;
break;
- case TEMP_NORMAL:
case TEMP_EBB:
case TEMP_CONST:
state = TS_DEAD;
@@ -2811,9 +2806,6 @@ static void la_bb_sync(TCGContext *s, int ng, int nt)
continue;
}
break;
- case TEMP_NORMAL:
- s->temps[i].state = TS_DEAD;
- break;
case TEMP_EBB:
case TEMP_CONST:
continue;
@@ -3571,7 +3563,6 @@ static void temp_free_or_dead(TCGContext *s, TCGTemp *ts,
int free_or_dead)
case TEMP_TB:
new_type = TEMP_VAL_MEM;
break;
- case TEMP_NORMAL:
case TEMP_EBB:
new_type = free_or_dead < 0 ? TEMP_VAL_MEM : TEMP_VAL_DEAD;
break;
@@ -3859,7 +3850,6 @@ static void tcg_reg_alloc_bb_end(TCGContext *s, TCGRegSet
allocated_regs)
case TEMP_TB:
temp_save(s, ts, allocated_regs);
break;
- case TEMP_NORMAL:
case TEMP_EBB:
/* The liveness analysis already ensures that temps are dead.
Keep an tcg_debug_assert for safety. */
@@ -3896,9 +3886,6 @@ static void tcg_reg_alloc_cbranch(TCGContext *s,
TCGRegSet allocated_regs)
case TEMP_TB:
tcg_debug_assert(ts->val_type != TEMP_VAL_REG || ts->mem_coherent);
break;
- case TEMP_NORMAL:
- tcg_debug_assert(ts->val_type == TEMP_VAL_DEAD);
- break;
case TEMP_EBB:
case TEMP_CONST:
break;
--
2.34.1
- [PULL 31/62] include/exec: Remove `tb_pc()`, (continued)
- [PULL 31/62] include/exec: Remove `tb_pc()`, Richard Henderson, 2023/02/28
- [PULL 33/62] accel/tcg: Pass max_insn to gen_intermediate_code by pointer, Richard Henderson, 2023/02/28
- [PULL 29/62] target/avr: Replace `tb_pc()` with `tb->pc`, Richard Henderson, 2023/02/28
- [PULL 34/62] accel/tcg: Use more accurate max_insns for tb_overflow, Richard Henderson, 2023/02/28
- [PULL 35/62] tcg: Remove branch-to-next regardless of reference count, Richard Henderson, 2023/02/28
- [PULL 26/62] target/i386: Replace `tb_pc()` with `tb->pc`, Richard Henderson, 2023/02/28
- [PULL 27/62] target/hppa: Replace `tb_pc()` with `tb->pc`, Richard Henderson, 2023/02/28
- [PULL 36/62] tcg: Rename TEMP_LOCAL to TEMP_TB, Richard Henderson, 2023/02/28
- [PULL 37/62] tcg: Use noinline for major tcg_gen_code subroutines, Richard Henderson, 2023/02/28
- [PULL 38/62] tcg: Add liveness_pass_0, Richard Henderson, 2023/02/28
- [PULL 39/62] tcg: Remove TEMP_NORMAL,
Richard Henderson <=
- [PULL 47/62] accel/tcg/plugin: Tidy plugin_gen_disable_mem_helpers, Richard Henderson, 2023/02/28
- [PULL 58/62] target/ppc: Don't use tcg_temp_local_new, Richard Henderson, 2023/02/28
- [PULL 46/62] accel/tcg/plugin: Use tcg_temp_ebb_*, Richard Henderson, 2023/02/28
- [PULL 55/62] target/hppa: Don't use tcg_temp_local_new, Richard Henderson, 2023/02/28
- [PULL 43/62] tcg: Add tcg_temp_ebb_new_{i32,i64,ptr}, Richard Henderson, 2023/02/28
- [PULL 44/62] tcg: Use tcg_temp_ebb_new_* in tcg/, Richard Henderson, 2023/02/28
- [PULL 60/62] exec/gen-icount: Don't use tcg_temp_local_new_i32, Richard Henderson, 2023/02/28
- [PULL 56/62] target/i386: Don't use tcg_temp_local_new, Richard Henderson, 2023/02/28
- [PULL 50/62] target/arm: Drop copies in gen_sve_{ldr,str}, Richard Henderson, 2023/02/28
- [PULL 48/62] tcg: Don't re-use TEMP_TB temporaries, Richard Henderson, 2023/02/28