[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 06/48] tcg/optimize: Split out init_arguments
From: |
Richard Henderson |
Subject: |
[PATCH v2 06/48] tcg/optimize: Split out init_arguments |
Date: |
Thu, 7 Oct 2021 12:54:14 -0700 |
There was no real reason for calls to have separate code here.
Unify init for calls vs non-calls using the call path, which
handles TCG_CALL_DUMMY_ARG.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
tcg/optimize.c | 25 +++++++++++--------------
1 file changed, 11 insertions(+), 14 deletions(-)
diff --git a/tcg/optimize.c b/tcg/optimize.c
index b875d76354..019c5aaf81 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -128,11 +128,6 @@ static void init_ts_info(OptContext *ctx, TCGTemp *ts)
}
}
-static void init_arg_info(OptContext *ctx, TCGArg arg)
-{
- init_ts_info(ctx, arg_temp(arg));
-}
-
static TCGTemp *find_better_copy(TCGContext *s, TCGTemp *ts)
{
TCGTemp *i, *g, *l;
@@ -606,6 +601,16 @@ static bool swap_commutative2(TCGArg *p1, TCGArg *p2)
return false;
}
+static void init_arguments(OptContext *ctx, TCGOp *op, int nb_args)
+{
+ for (int i = 0; i < nb_args; i++) {
+ TCGTemp *ts = arg_temp(op->args[i]);
+ if (ts) {
+ init_ts_info(ctx, ts);
+ }
+ }
+}
+
/* Propagate constants and copies, fold constant expressions. */
void tcg_optimize(TCGContext *s)
{
@@ -636,19 +641,11 @@ void tcg_optimize(TCGContext *s)
if (opc == INDEX_op_call) {
nb_oargs = TCGOP_CALLO(op);
nb_iargs = TCGOP_CALLI(op);
- for (i = 0; i < nb_oargs + nb_iargs; i++) {
- TCGTemp *ts = arg_temp(op->args[i]);
- if (ts) {
- init_ts_info(&ctx, ts);
- }
- }
} else {
nb_oargs = def->nb_oargs;
nb_iargs = def->nb_iargs;
- for (i = 0; i < nb_oargs + nb_iargs; i++) {
- init_arg_info(&ctx, op->args[i]);
- }
}
+ init_arguments(&ctx, op, nb_oargs + nb_iargs);
/* Do copy propagation */
for (i = nb_oargs; i < nb_oargs + nb_iargs; i++) {
--
2.25.1
- RE: [PATCH v2 14/48] tcg/optimize: Split out fold_mb, fold_qemu_{ld,st}, (continued)
- [PATCH v2 16/48] tcg/optimize: Split out fold_setcond2, Richard Henderson, 2021/10/07
- [PATCH v2 18/48] tcg/optimize: Split out fold_brcond, Richard Henderson, 2021/10/07
- [PATCH v2 24/48] tcg/optimize: Split out fold_extract, fold_sextract, Richard Henderson, 2021/10/07
- [PATCH v2 32/48] tcg/optimize: Split out fold_xi_to_i, Richard Henderson, 2021/10/07
- [PATCH v2 30/48] tcg/optimize: Split out fold_xx_to_i, Richard Henderson, 2021/10/07
- [PATCH v2 28/48] tcg/optimize: Split out fold_dup, fold_dup2, Richard Henderson, 2021/10/07
- [PATCH v2 35/48] tcg/optimize: Split out fold_sub_to_neg, Richard Henderson, 2021/10/07
- [PATCH v2 06/48] tcg/optimize: Split out init_arguments,
Richard Henderson <=
- [PATCH v2 22/48] tcg/optimize: Split out fold_movcond, Richard Henderson, 2021/10/07
- [PATCH v2 25/48] tcg/optimize: Split out fold_deposit, Richard Henderson, 2021/10/07
- [PATCH v2 12/48] tcg/optimize: Split out finish_folding, Richard Henderson, 2021/10/07
- [PATCH v2 33/48] tcg/optimize: Add type to OptContext, Richard Henderson, 2021/10/07
- [PATCH v2 39/48] tcg/optimize: Expand fold_mulu2_i32 to all 4-arg multiplies, Richard Henderson, 2021/10/07
- [PATCH v2 11/48] tcg/optimize: Return true from tcg_opt_gen_{mov, movi}, Richard Henderson, 2021/10/07