[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 07/27] tcg: Remove TEMP_NORMAL
From: |
Richard Henderson |
Subject: |
[PATCH 07/27] tcg: Remove TEMP_NORMAL |
Date: |
Mon, 30 Jan 2023 10:59:15 -1000 |
TEMP_NORMAL is a subset of TEMP_EBB. Promote single basic
block temps to single extended basic block.
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 8786607510..ace910cf3b 100644
--- a/include/tcg/tcg.h
+++ b/include/tcg/tcg.h
@@ -429,8 +429,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 fb9ab967ea..da02a180b1 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);
}
@@ -1909,7 +1909,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 */
@@ -1939,9 +1938,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:
@@ -2760,7 +2756,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;
@@ -2809,9 +2804,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;
@@ -3565,7 +3557,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;
@@ -3853,7 +3844,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. */
@@ -3890,9 +3880,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 03/27] accel/tcg: Use more accurate max_insns for tb_overflow, (continued)
- [PATCH 03/27] accel/tcg: Use more accurate max_insns for tb_overflow, Richard Henderson, 2023/01/30
- [PATCH 01/27] tcg: Adjust TCGContext.temps_in_use check, Richard Henderson, 2023/01/30
- [PATCH 06/27] tcg: Add liveness_pass_0, Richard Henderson, 2023/01/30
- [PATCH 08/27] tcg: Pass TCGTempKind to tcg_temp_new_internal, Richard Henderson, 2023/01/30
- [PATCH 09/27] tcg: Add tcg_temp_ebb_new_{i32,i64,ptr}, Richard Henderson, 2023/01/30
- [PATCH 04/27] tcg: Remove branch-to-next regardless of reference count, Richard Henderson, 2023/01/30
- [PATCH 10/27] tcg: Add tcg_gen_movi_ptr, Richard Henderson, 2023/01/30
- [PATCH 07/27] tcg: Remove TEMP_NORMAL,
Richard Henderson <=
- [PATCH 16/27] target/arm: Drop copies in gen_sve_{ldr,str}, Richard Henderson, 2023/01/30
- [PATCH 15/27] tcg: Change default temp lifetime to TEMP_TB, Richard Henderson, 2023/01/30
- [PATCH 13/27] accel/tcg/plugin: Tidy plugin_gen_disable_mem_helpers, Richard Henderson, 2023/01/30
- [PATCH 11/27] tcg: Use tcg_temp_ebb_new_* in tcg/, Richard Henderson, 2023/01/30
- [PATCH 14/27] tcg: Don't re-use TEMP_TB temporaries, Richard Henderson, 2023/01/30
- [PATCH 19/27] target/hexagon: Don't use tcg_temp_local_new_*, Richard Henderson, 2023/01/30