[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 08/31] tcg: Remove TEMP_NORMAL
From: |
Richard Henderson |
Subject: |
[PATCH v4 08/31] tcg: Remove TEMP_NORMAL |
Date: |
Sun, 26 Feb 2023 19:36:38 -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 6646770268..7ffd4a4f28 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_TB : TEMP_NORMAL;
+ TCGTempKind kind = temp_local ? TEMP_TB : TEMP_EBB;
TCGTemp *ts;
int idx, k;
@@ -1368,7 +1368,7 @@ void tcg_temp_free_internal(TCGTemp *ts)
* silently ignore free.
*/
return;
- case TEMP_NORMAL:
+ case TEMP_EBB:
case TEMP_TB:
break;
default:
@@ -1384,7 +1384,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);
}
@@ -1911,7 +1911,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 */
@@ -1941,9 +1940,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:
@@ -2763,7 +2759,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;
@@ -2812,9 +2807,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;
@@ -3572,7 +3564,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;
@@ -3860,7 +3851,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. */
@@ -3897,9 +3887,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
- [PATCH v4 00/31] tcg: Simplify temporary usage, Richard Henderson, 2023/02/27
- [PATCH v4 01/31] tcg: Adjust TCGContext.temps_in_use check, Richard Henderson, 2023/02/27
- [PATCH v4 02/31] accel/tcg: Pass max_insn to gen_intermediate_code by pointer, Richard Henderson, 2023/02/27
- [PATCH v4 03/31] accel/tcg: Use more accurate max_insns for tb_overflow, Richard Henderson, 2023/02/27
- [PATCH v4 04/31] tcg: Remove branch-to-next regardless of reference count, Richard Henderson, 2023/02/27
- [PATCH v4 05/31] tcg: Rename TEMP_LOCAL to TEMP_TB, Richard Henderson, 2023/02/27
- [PATCH v4 06/31] tcg: Use noinline for major tcg_gen_code subroutines, Richard Henderson, 2023/02/27
- [PATCH v4 07/31] tcg: Add liveness_pass_0, Richard Henderson, 2023/02/27
- [PATCH v4 08/31] tcg: Remove TEMP_NORMAL,
Richard Henderson <=
- [PATCH v4 10/31] tcg: Use tcg_constant_i32 in tcg_gen_io_start, Richard Henderson, 2023/02/27
- [PATCH v4 09/31] tcg: Pass TCGTempKind to tcg_temp_new_internal, Richard Henderson, 2023/02/27
- [PATCH v4 11/31] tcg: Add tcg_gen_movi_ptr, Richard Henderson, 2023/02/27
- [PATCH v4 12/31] tcg: Add tcg_temp_ebb_new_{i32,i64,ptr}, Richard Henderson, 2023/02/27
- [PATCH v4 16/31] accel/tcg/plugin: Tidy plugin_gen_disable_mem_helpers, Richard Henderson, 2023/02/27
- [PATCH v4 13/31] tcg: Use tcg_temp_ebb_new_* in tcg/, Richard Henderson, 2023/02/27
- [PATCH v4 14/31] tcg: Use tcg_constant_ptr in do_dup, Richard Henderson, 2023/02/27
- [PATCH v4 15/31] accel/tcg/plugin: Use tcg_temp_ebb_*, Richard Henderson, 2023/02/27
- [PATCH v4 18/31] tcg: Change default temp lifetime to TEMP_TB, Richard Henderson, 2023/02/27
- [PATCH v4 21/31] target/cris: Don't use tcg_temp_local_new, Richard Henderson, 2023/02/27