[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 06/31] tcg: Use noinline for major tcg_gen_code subroutines
From: |
Richard Henderson |
Subject: |
[PATCH v4 06/31] tcg: Use noinline for major tcg_gen_code subroutines |
Date: |
Sun, 26 Feb 2023 19:36:36 -1000 |
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>
---
tcg/tcg.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/tcg/tcg.c b/tcg/tcg.c
index bf2af8b0fe..7ee935701a 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -2636,7 +2636,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;
@@ -2860,7 +2861,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;
@@ -3200,7 +3202,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;
--
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 <=
- [PATCH v4 07/31] tcg: Add liveness_pass_0, Richard Henderson, 2023/02/27
- [PATCH v4 08/31] tcg: Remove TEMP_NORMAL, Richard Henderson, 2023/02/27
- [PATCH v4 09/31] tcg: Pass TCGTempKind to tcg_temp_new_internal, Richard Henderson, 2023/02/27
- [PATCH v4 10/31] tcg: Use tcg_constant_i32 in tcg_gen_io_start, Richard Henderson, 2023/02/27
- [PATCH v4 11/31] tcg: Add tcg_gen_movi_ptr, Richard Henderson, 2023/02/27
- [PATCH v4 14/31] tcg: Use tcg_constant_ptr in do_dup, 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 17/31] tcg: Don't re-use TEMP_TB temporaries, Richard Henderson, 2023/02/27