From a5b3faae30e33c00e6e09f0472dd3e0d37c243a3 Mon Sep 17 00:00:00 2001 From: "Wolfgang (Blub) Bumiller" Date: Tue, 14 Aug 2012 23:43:08 +0200 Subject: [PATCH] const folding for division --- parser.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/parser.c b/parser.c index 9887978..4b09b45 100644 --- a/parser.c +++ b/parser.c @@ -608,7 +608,11 @@ static bool parser_sy_pop(parser_t *parser, shunt *sy) type_name[exprs[1]->expression.vtype]); return false; } - out = (ast_expression*)ast_binary_new(ctx, INSTR_DIV_F, exprs[0], exprs[1]); + if (CanConstFold(exprs[0], exprs[1])) + out = (ast_expression*)parser_const_float(parser, + asvalue[0]->constval.vfloat / asvalue[1]->constval.vfloat); + else + out = (ast_expression*)ast_binary_new(ctx, INSTR_DIV_F, exprs[0], exprs[1]); break; case opid1('%'): case opid2('%','='): -- 2.39.2