From e6d61ac20284b0de9b4dc81cb9ba27109b477cd1 Mon Sep 17 00:00:00 2001 From: Homer Hsing Date: Mon, 17 Sep 2012 13:34:38 +0800 Subject: [PATCH] Merge same if branches in declare_pragma section in gram.y --- assembler/src/gram.y | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/assembler/src/gram.y b/assembler/src/gram.y index c9e2c1e5..ad53a084 100644 --- a/assembler/src/gram.y +++ b/assembler/src/gram.y @@ -252,27 +252,23 @@ declare_type: TYPE EQ regtype ; declare_pragma: DECLARE_PRAGMA STRING declare_base declare_elementsize declare_srcregion declare_dstregion declare_type { - struct declared_register *reg; - if ((reg = find_register($2)) != NULL) { + struct declared_register *reg; + int defined; + defined = (reg = find_register($2)) != NULL; + if (defined) { fprintf(stderr, "WARNING: %s already defined\n", $2); - reg->name = $2; - reg->base.reg_file = $3.reg_file; - reg->base.reg_nr = $3.reg_nr; - reg->base.subreg_nr = $3.subreg_nr; - reg->element_size = $4; - reg->src_region = $5; - reg->dst_region = $6; - reg->type = $7; - }else { + } else { reg = calloc(sizeof(struct declared_register), 1); - reg->name = $2; - reg->base.reg_file = $3.reg_file; - reg->base.reg_nr = $3.reg_nr; - reg->base.subreg_nr = $3.subreg_nr; - reg->element_size = $4; - reg->src_region = $5; - reg->dst_region = $6; - reg->type = $7; + } + reg->name = $2; + reg->base.reg_file = $3.reg_file; + reg->base.reg_nr = $3.reg_nr; + reg->base.subreg_nr = $3.subreg_nr; + reg->element_size = $4; + reg->src_region = $5; + reg->dst_region = $6; + reg->type = $7; + if (!defined) { insert_register(reg); } }