aboutsummaryrefslogtreecommitdiffstats
path: root/awkgram.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2013-10-16 20:58:44 +0300
committerArnold D. Robbins <arnold@skeeve.com>2013-10-16 20:58:44 +0300
commitc3f03fe1d5a7c1b2c7b8ff843afc506ce2a45811 (patch)
treef86363027837b4f00a3875d87dc7e1501f0497c2 /awkgram.c
parent9380fada600b5ff040048027484ad9ecc554d44e (diff)
downloadegawk-c3f03fe1d5a7c1b2c7b8ff843afc506ce2a45811.tar.gz
egawk-c3f03fe1d5a7c1b2c7b8ff843afc506ce2a45811.tar.bz2
egawk-c3f03fe1d5a7c1b2c7b8ff843afc506ce2a45811.zip
Fix -O option.
Diffstat (limited to 'awkgram.c')
-rw-r--r--awkgram.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/awkgram.c b/awkgram.c
index 1ca2791a..74913840 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -2848,7 +2848,7 @@ regular_loop:
(void) list_prepend((yyval), instruction(Op_push_i));
(yyval)->nexti->memory = dupnode(Nnull_string);
} else {
- if (do_optimize > 1
+ if (do_optimize
&& (yyvsp[(3) - (4)])->lasti->opcode == Op_func_call
&& strcmp((yyvsp[(3) - (4)])->lasti->func_name, in_function) == 0
) {
@@ -3518,7 +3518,7 @@ regular_print:
*/
}
- if (do_optimize > 1
+ if (do_optimize
&& (yyvsp[(1) - (2)])->nexti == (yyvsp[(1) - (2)])->lasti && (yyvsp[(1) - (2)])->nexti->opcode == Op_push_i
&& (yyvsp[(2) - (2)])->nexti == (yyvsp[(2) - (2)])->lasti && (yyvsp[(2) - (2)])->nexti->opcode == Op_push_i
) {
@@ -3718,7 +3718,7 @@ regular_print:
(yyval) = list_append(list_append(list_create((yyvsp[(1) - (2)])),
instruction(Op_field_spec)), (yyvsp[(2) - (2)]));
} else {
- if (do_optimize > 1 && (yyvsp[(2) - (2)])->nexti == (yyvsp[(2) - (2)])->lasti
+ if (do_optimize && (yyvsp[(2) - (2)])->nexti == (yyvsp[(2) - (2)])->lasti
&& (yyvsp[(2) - (2)])->nexti->opcode == Op_push_i
&& ((yyvsp[(2) - (2)])->nexti->memory->flags & (MPFN|MPZN)) == 0
) {
@@ -6705,7 +6705,7 @@ mk_function(INSTRUCTION *fi, INSTRUCTION *def)
thisfunc = fi->func_body;
assert(thisfunc != NULL);
- if (do_optimize > 1 && def->lasti->opcode == Op_pop) {
+ if (do_optimize && def->lasti->opcode == Op_pop) {
/* tail call which does not return any value. */
INSTRUCTION *t;
@@ -7233,7 +7233,7 @@ mk_binary(INSTRUCTION *s1, INSTRUCTION *s2, INSTRUCTION *op)
if (s2->lasti == ip2 && ip2->opcode == Op_push_i) {
/* do any numeric constant folding */
ip1 = s1->nexti;
- if (do_optimize > 1
+ if (do_optimize
&& ip1 == s1->lasti && ip1->opcode == Op_push_i
&& (ip1->memory->flags & (MPFN|MPZN|STRCUR|STRING)) == 0
&& (ip2->memory->flags & (MPFN|MPZN|STRCUR|STRING)) == 0
@@ -7652,10 +7652,8 @@ optimize_assignment(INSTRUCTION *exp)
i2 = NULL;
i1 = exp->lasti;
- if ( ! do_optimize
- || ( i1->opcode != Op_assign
- && i1->opcode != Op_field_assign)
- )
+ if ( i1->opcode != Op_assign
+ && i1->opcode != Op_field_assign)
return list_append(exp, instruction(Op_pop));
for (i2 = exp->nexti; i2 != i1; i2 = i2->nexti) {