tcg: Use noinline for major tcg_gen_code subroutines

This makes it easier to assign blame with perf.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2023-02-24 12:07:33 -10:00
parent f57c69156c
commit 9bbee4c01c
1 changed files with 6 additions and 3 deletions

View File

@ -2635,7 +2635,8 @@ TCGOp *tcg_op_insert_after(TCGContext *s, TCGOp *old_op,
}
/* Reachable analysis : remove unreachable code. */
static void reachable_code_pass(TCGContext *s)
static void __attribute__((noinline))
reachable_code_pass(TCGContext *s)
{
TCGOp *op, *op_next, *op_prev;
bool dead = false;
@ -2859,7 +2860,8 @@ static void la_cross_call(TCGContext *s, int nt)
/* Liveness analysis : update the opc_arg_life array to tell if a
given input arguments is dead. Instructions updating dead
temporaries are removed. */
static void liveness_pass_1(TCGContext *s)
static void __attribute__((noinline))
liveness_pass_1(TCGContext *s)
{
int nb_globals = s->nb_globals;
int nb_temps = s->nb_temps;
@ -3199,7 +3201,8 @@ static void liveness_pass_1(TCGContext *s)
}
/* Liveness analysis: Convert indirect regs to direct temporaries. */
static bool liveness_pass_2(TCGContext *s)
static bool __attribute__((noinline))
liveness_pass_2(TCGContext *s)
{
int nb_globals = s->nb_globals;
int nb_temps, i;