[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 28/28] tcg: Use noinline for major tcg_gen_code_subroutines
From: |
Richard Henderson |
Subject: |
[PATCH v2 28/28] tcg: Use noinline for major tcg_gen_code_subroutines |
Date: |
Wed, 22 Feb 2023 13:27:15 -1000 |
This makes it easier to assign blame with perf.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
tcg/tcg.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 4b244eebc2..b65f2ffdbe 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -2619,7 +2619,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;
@@ -2840,7 +2841,8 @@ static void la_cross_call(TCGContext *s, int nt)
* Liveness analysis: Verify the lifetime of TEMP_TB, and reduce
* to TEMP_EBB, if possible.
*/
-static void liveness_pass_0(TCGContext *s)
+static void __attribute__((noinline))
+liveness_pass_0(TCGContext *s)
{
void * const multiple_ebb = (void *)(uintptr_t)-1;
int nb_temps = s->nb_temps;
@@ -2907,7 +2909,8 @@ static void liveness_pass_0(TCGContext *s)
/* 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;
@@ -3247,7 +3250,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 v2 17/28] target/arm: Don't use tcg_temp_local_new_*, (continued)
- [PATCH v2 17/28] target/arm: Don't use tcg_temp_local_new_*, Richard Henderson, 2023/02/22
- [PATCH v2 18/28] target/cris: Don't use tcg_temp_local_new, Richard Henderson, 2023/02/22
- [PATCH v2 21/28] target/i386: Don't use tcg_temp_local_new, Richard Henderson, 2023/02/22
- [PATCH v2 20/28] target/hppa: Don't use tcg_temp_local_new, Richard Henderson, 2023/02/22
- [PATCH v2 22/28] target/mips: Don't use tcg_temp_local_new, Richard Henderson, 2023/02/22
- [PATCH v2 26/28] tcg: Remove tcg_temp_local_new_*, tcg_const_local_*, Richard Henderson, 2023/02/22
- [PATCH v2 23/28] target/ppc: Don't use tcg_temp_local_new, Richard Henderson, 2023/02/22
- [PATCH v2 25/28] exec/gen-icount: Don't use tcg_temp_local_new_i32, Richard Henderson, 2023/02/22
- [PATCH v2 19/28] target/hexagon: Don't use tcg_temp_local_new_*, Richard Henderson, 2023/02/22
- [PATCH v2 24/28] target/xtensa: Don't use tcg_temp_local_new_*, Richard Henderson, 2023/02/22
- [PATCH v2 28/28] tcg: Use noinline for major tcg_gen_code_subroutines,
Richard Henderson <=
- [PATCH v2 27/28] tcg: Update docs/devel/tcg-ops.rst for temporary changes, Richard Henderson, 2023/02/22