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