|
|
5544c1 |
From 1610a0e56c0be3e4bfd3034e5323188b1d05badd Mon Sep 17 00:00:00 2001
|
|
|
5544c1 |
From: Aurelien Jarno <aurelien@aurel32.net>
|
|
|
5544c1 |
Date: Mon, 10 Sep 2012 14:23:49 +0200
|
|
|
5544c1 |
Subject: [PATCH] tcg: mark set_label with TCG_OPF_BB_END flag
|
|
|
5544c1 |
|
|
|
5544c1 |
set_label is effectively the end of a basic block, as no optimization
|
|
|
5544c1 |
can be made accross it. It was treated as such in the liveness analysis
|
|
|
5544c1 |
code, but as a special case.
|
|
|
5544c1 |
|
|
|
5544c1 |
Mark it with TCG_OPF_BB_END flag so that this information can be used
|
|
|
5544c1 |
by other parts of the TCG code, and remove the special case in the liveness
|
|
|
5544c1 |
analysis code.
|
|
|
5544c1 |
|
|
|
5544c1 |
Cc: Blue Swirl <blauwirbel@gmail.com>
|
|
|
5544c1 |
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
|
|
|
5544c1 |
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
|
|
|
5544c1 |
---
|
|
|
5544c1 |
tcg/tcg-opc.h | 2 +-
|
|
|
5544c1 |
tcg/tcg.c | 5 -----
|
|
|
5544c1 |
2 files changed, 1 insertion(+), 6 deletions(-)
|
|
|
5544c1 |
|
|
|
5544c1 |
diff --git a/tcg/tcg-opc.h b/tcg/tcg-opc.h
|
|
|
5544c1 |
index 8e06d03..d12e8d0 100644
|
|
|
5544c1 |
--- a/tcg/tcg-opc.h
|
|
|
5544c1 |
+++ b/tcg/tcg-opc.h
|
|
|
5544c1 |
@@ -36,7 +36,7 @@ DEF(nopn, 0, 0, 1, 0) /* variable number of parameters */
|
|
|
5544c1 |
|
|
|
5544c1 |
DEF(discard, 1, 0, 0, 0)
|
|
|
5544c1 |
|
|
|
5544c1 |
-DEF(set_label, 0, 0, 1, 0)
|
|
|
5544c1 |
+DEF(set_label, 0, 0, 1, TCG_OPF_BB_END)
|
|
|
5544c1 |
DEF(call, 0, 1, 2, TCG_OPF_SIDE_EFFECTS) /* variable number of parameters */
|
|
|
5544c1 |
DEF(jmp, 0, 1, 0, TCG_OPF_BB_END | TCG_OPF_SIDE_EFFECTS)
|
|
|
5544c1 |
DEF(br, 0, 0, 1, TCG_OPF_BB_END | TCG_OPF_SIDE_EFFECTS)
|
|
|
5544c1 |
diff --git a/tcg/tcg.c b/tcg/tcg.c
|
|
|
5544c1 |
index 8386b70..c002a88 100644
|
|
|
5544c1 |
--- a/tcg/tcg.c
|
|
|
5544c1 |
+++ b/tcg/tcg.c
|
|
|
5544c1 |
@@ -1297,11 +1297,6 @@ static void tcg_liveness_analysis(TCGContext *s)
|
|
|
5544c1 |
args--;
|
|
|
5544c1 |
}
|
|
|
5544c1 |
break;
|
|
|
5544c1 |
- case INDEX_op_set_label:
|
|
|
5544c1 |
- args--;
|
|
|
5544c1 |
- /* mark end of basic block */
|
|
|
5544c1 |
- tcg_la_bb_end(s, dead_temps);
|
|
|
5544c1 |
- break;
|
|
|
5544c1 |
case INDEX_op_debug_insn_start:
|
|
|
5544c1 |
args -= def->nb_args;
|
|
|
5544c1 |
break;
|
|
|
5544c1 |
--
|
|
|
5544c1 |
1.7.12.1
|
|
|
5544c1 |
|