[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 9/9] tcg/optimize: fix if/else/break coding style
From: |
Aurelien Jarno |
Subject: |
[Qemu-devel] [PATCH v2 9/9] tcg/optimize: fix if/else/break coding style |
Date: |
Fri, 7 Sep 2012 15:16:32 +0200 |
optimizer.c contains some cases were the break is appearing in both the
if and the else parts. Fix that by moving it to the outer part. Also
move some common code there.
Signed-off-by: Aurelien Jarno <address@hidden>
---
tcg/optimize.c | 34 +++++++++++-----------------------
1 file changed, 11 insertions(+), 23 deletions(-)
diff --git a/tcg/optimize.c b/tcg/optimize.c
index 156e8d9..fba0ed9 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -441,15 +441,14 @@ static TCGArg *tcg_constant_folding(TCGContext *s,
uint16_t *tcg_opc_ptr,
if ((temps[args[0]].state == TCG_TEMP_COPY
&& temps[args[0]].val == args[1])
|| args[0] == args[1]) {
- args += 3;
gen_opc_buf[op_index] = INDEX_op_nop;
} else {
gen_opc_buf[op_index] = op_to_mov(op);
tcg_opt_gen_mov(s, gen_args, args[0], args[1],
nb_temps, nb_globals);
gen_args += 2;
- args += 3;
}
+ args += 3;
continue;
}
break;
@@ -480,15 +479,14 @@ static TCGArg *tcg_constant_folding(TCGContext *s,
uint16_t *tcg_opc_ptr,
CASE_OP_32_64(and):
if (args[1] == args[2]) {
if (args[1] == args[0]) {
- args += 3;
gen_opc_buf[op_index] = INDEX_op_nop;
} else {
gen_opc_buf[op_index] = op_to_mov(op);
tcg_opt_gen_mov(s, gen_args, args[0], args[1], nb_temps,
nb_globals);
gen_args += 2;
- args += 3;
}
+ args += 3;
continue;
}
break;
@@ -538,17 +536,14 @@ static TCGArg *tcg_constant_folding(TCGContext *s,
uint16_t *tcg_opc_ptr,
gen_opc_buf[op_index] = op_to_movi(op);
tmp = do_constant_folding(op, temps[args[1]].val, 0);
tcg_opt_gen_movi(gen_args, args[0], tmp, nb_temps, nb_globals);
- gen_args += 2;
- args += 2;
- break;
} else {
reset_temp(args[0], nb_temps, nb_globals);
gen_args[0] = args[0];
gen_args[1] = args[1];
- gen_args += 2;
- args += 2;
- break;
}
+ gen_args += 2;
+ args += 2;
+ break;
CASE_OP_32_64(add):
CASE_OP_32_64(sub):
CASE_OP_32_64(mul):
@@ -572,17 +567,15 @@ static TCGArg *tcg_constant_folding(TCGContext *s,
uint16_t *tcg_opc_ptr,
temps[args[2]].val);
tcg_opt_gen_movi(gen_args, args[0], tmp, nb_temps, nb_globals);
gen_args += 2;
- args += 3;
- break;
} else {
reset_temp(args[0], nb_temps, nb_globals);
gen_args[0] = args[0];
gen_args[1] = args[1];
gen_args[2] = args[2];
gen_args += 3;
- args += 3;
- break;
}
+ args += 3;
+ break;
CASE_OP_32_64(setcond):
if (temps[args[1]].state == TCG_TEMP_CONST
&& temps[args[2]].state == TCG_TEMP_CONST) {
@@ -591,8 +584,6 @@ static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t
*tcg_opc_ptr,
temps[args[2]].val, args[3]);
tcg_opt_gen_movi(gen_args, args[0], tmp, nb_temps, nb_globals);
gen_args += 2;
- args += 4;
- break;
} else {
reset_temp(args[0], nb_temps, nb_globals);
gen_args[0] = args[0];
@@ -600,9 +591,9 @@ static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t
*tcg_opc_ptr,
gen_args[2] = args[2];
gen_args[3] = args[3];
gen_args += 4;
- args += 4;
- break;
}
+ args += 4;
+ break;
CASE_OP_32_64(brcond):
if (temps[args[0]].state == TCG_TEMP_CONST
&& temps[args[1]].state == TCG_TEMP_CONST) {
@@ -612,12 +603,9 @@ static TCGArg *tcg_constant_folding(TCGContext *s,
uint16_t *tcg_opc_ptr,
gen_opc_buf[op_index] = INDEX_op_br;
gen_args[0] = args[3];
gen_args += 1;
- args += 4;
} else {
gen_opc_buf[op_index] = INDEX_op_nop;
- args += 4;
}
- break;
} else {
memset(temps, 0, nb_temps * sizeof(struct tcg_temp_info));
reset_temp(args[0], nb_temps, nb_globals);
@@ -626,9 +614,9 @@ static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t
*tcg_opc_ptr,
gen_args[2] = args[2];
gen_args[3] = args[3];
gen_args += 4;
- args += 4;
- break;
}
+ args += 4;
+ break;
case INDEX_op_call:
nb_call_args = (args[0] >> 16) + (args[0] & 0xffff);
if (!(args[nb_call_args + 1] & (TCG_CALL_CONST | TCG_CALL_PURE))) {
--
1.7.10.4
- [Qemu-devel] [PATCH v2 0/9] Improve TCG optimizer, Aurelien Jarno, 2012/09/07
- [Qemu-devel] [PATCH v2 2/9] tcg/optimize: split expression simplification, Aurelien Jarno, 2012/09/07
- [Qemu-devel] [PATCH v2 1/9] tcg: improve profiler, Aurelien Jarno, 2012/09/07
- [Qemu-devel] [PATCH v2 3/9] tcg/optimize: simplify or/xor r, a, 0 cases, Aurelien Jarno, 2012/09/07
- [Qemu-devel] [PATCH v2 4/9] tcg/optimize: simplify and r, a, 0 cases, Aurelien Jarno, 2012/09/07
- [Qemu-devel] [PATCH v2 9/9] tcg/optimize: fix if/else/break coding style,
Aurelien Jarno <=
- [Qemu-devel] [PATCH v2 8/9] tcg/optimize: add constant folding for brcond, Aurelien Jarno, 2012/09/07
- [Qemu-devel] [PATCH v2 5/9] tcg/optimize: simplify shift/rot r, 0, a => movi r, 0 cases, Aurelien Jarno, 2012/09/07
- [Qemu-devel] [PATCH v2 7/9] tcg/optimize: add constant folding for setcond, Aurelien Jarno, 2012/09/07
- [Qemu-devel] [PATCH v2 6/9] tcg/optimize: swap brcond/setcond arguments when possible, Aurelien Jarno, 2012/09/07
- Re: [Qemu-devel] [PATCH v2 0/9] Improve TCG optimizer, Blue Swirl, 2012/09/08