Patchwork TCG: improve optimizer debugging

login
register
mail settings
Submitter Blue Swirl
Date July 30, 2011, 7:21 p.m.
Message ID <CAAu8pHsRhJh6_spP7KHH4Nf846XTh0DAA4JWSQth4xo-qH+GoQ@mail.gmail.com>
Download mbox | patch
Permalink /patch/107514/
State New
Headers show

Comments

Blue Swirl - July 30, 2011, 7:21 p.m.
Use enum TCGOpcode instead of plain old int so that the name of
current op can be seen in GDB. Add a default case to switch
so that GCC does not complain about unhandled enum cases.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
---
 tcg/optimize.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

     case INDEX_op_mov_i32:
@@ -169,7 +169,7 @@ static int op_bits(int op)
     }
 }

-static int op_to_movi(int op)
+static TCGOpcode op_to_movi(TCGOpcode op)
 {
     switch (op_bits(op)) {
     case 32:
@@ -218,7 +218,7 @@ static void tcg_opt_gen_movi(TCGArg *gen_args,
TCGArg dst, TCGArg val,
         gen_args[1] = val;
 }

-static int op_to_mov(int op)
+static TCGOpcode op_to_mov(TCGOpcode op)
 {
     switch (op_bits(op)) {
     case 32:
@@ -234,7 +234,7 @@ static int op_to_mov(int op)
     }
 }

-static TCGArg do_constant_folding_2(int op, TCGArg x, TCGArg y)
+static TCGArg do_constant_folding_2(TCGOpcode op, TCGArg x, TCGArg y)
 {
     switch (op) {
     CASE_OP_32_64(add):
@@ -384,7 +384,7 @@ static TCGArg do_constant_folding_2(int op, TCGArg
x, TCGArg y)
     }
 }

-static TCGArg do_constant_folding(int op, TCGArg x, TCGArg y)
+static TCGArg do_constant_folding(TCGOpcode op, TCGArg x, TCGArg y)
 {
     TCGArg res = do_constant_folding_2(op, x, y);
 #if TCG_TARGET_REG_BITS == 64
@@ -399,7 +399,8 @@ static TCGArg do_constant_folding(int op, TCGArg
x, TCGArg y)
 static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t *tcg_opc_ptr,
                                     TCGArg *args, TCGOpDef *tcg_op_defs)
 {
-    int i, nb_ops, op_index, op, nb_temps, nb_globals, nb_call_args;
+    int i, nb_ops, op_index, nb_temps, nb_globals, nb_call_args;
+    TCGOpcode op;
     const TCGOpDef *def;
     TCGArg *gen_args;
     TCGArg tmp;
@@ -508,6 +509,8 @@ static TCGArg *tcg_constant_folding(TCGContext *s,
uint16_t *tcg_opc_ptr,
                 continue;
             }
             break;
+        default:
+            break;
         }

         /* Propagate constants through copy operations and do constant

Patch

From 257a33ee8b83070f826f3e8a932e12acfba5ba8c Mon Sep 17 00:00:00 2001
Message-Id: <257a33ee8b83070f826f3e8a932e12acfba5ba8c.1312053638.git.blauwirbel@gmail.com>
From: Blue Swirl <blauwirbel@gmail.com>
Date: Sat, 30 Jul 2011 19:18:32 +0000
Subject: [PATCH] TCG: improve optimizer debugging

Use enum TCGOpcode instead of plain old int so that the name of
current op can be seen in GDB. Add a default case to switch
so that GCC does not complain about unhandled enum cases.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
---
 tcg/optimize.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/tcg/optimize.c b/tcg/optimize.c
index a3bfa5e..23e69f6 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -92,7 +92,7 @@  static void reset_temp(TCGArg temp, int nb_temps, int nb_globals)
     }
 }
 
-static int op_bits(int op)
+static int op_bits(TCGOpcode op)
 {
     switch (op) {
     case INDEX_op_mov_i32:
@@ -169,7 +169,7 @@  static int op_bits(int op)
     }
 }
 
-static int op_to_movi(int op)
+static TCGOpcode op_to_movi(TCGOpcode op)
 {
     switch (op_bits(op)) {
     case 32:
@@ -218,7 +218,7 @@  static void tcg_opt_gen_movi(TCGArg *gen_args, TCGArg dst, TCGArg val,
         gen_args[1] = val;
 }
 
-static int op_to_mov(int op)
+static TCGOpcode op_to_mov(TCGOpcode op)
 {
     switch (op_bits(op)) {
     case 32:
@@ -234,7 +234,7 @@  static int op_to_mov(int op)
     }
 }
 
-static TCGArg do_constant_folding_2(int op, TCGArg x, TCGArg y)
+static TCGArg do_constant_folding_2(TCGOpcode op, TCGArg x, TCGArg y)
 {
     switch (op) {
     CASE_OP_32_64(add):
@@ -384,7 +384,7 @@  static TCGArg do_constant_folding_2(int op, TCGArg x, TCGArg y)
     }
 }
 
-static TCGArg do_constant_folding(int op, TCGArg x, TCGArg y)
+static TCGArg do_constant_folding(TCGOpcode op, TCGArg x, TCGArg y)
 {
     TCGArg res = do_constant_folding_2(op, x, y);
 #if TCG_TARGET_REG_BITS == 64
@@ -399,7 +399,8 @@  static TCGArg do_constant_folding(int op, TCGArg x, TCGArg y)
 static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t *tcg_opc_ptr,
                                     TCGArg *args, TCGOpDef *tcg_op_defs)
 {
-    int i, nb_ops, op_index, op, nb_temps, nb_globals, nb_call_args;
+    int i, nb_ops, op_index, nb_temps, nb_globals, nb_call_args;
+    TCGOpcode op;
     const TCGOpDef *def;
     TCGArg *gen_args;
     TCGArg tmp;
@@ -508,6 +509,8 @@  static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t *tcg_opc_ptr,
                 continue;
             }
             break;
+        default:
+            break;
         }
 
         /* Propagate constants through copy operations and do constant
-- 
1.7.2.5