From 597ea3c3a0834c66e26e705f68d65941497ae696 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Wed, 30 Apr 2008 19:59:49 +0000 Subject: [PATCH] - renamed SymConst num attribute into more logical kind - reordered some struct attributes for better 64bit memory layout [r19477] --- ir/ir/ircons.c | 6 +++--- ir/ir/irnode.c | 6 +++--- ir/ir/iropt.c | 2 +- ir/ir/irtypes.h | 27 +++++++++++---------------- 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/ir/ir/ircons.c b/ir/ir/ircons.c index 87881b312..a9c566e82 100644 --- a/ir/ir/ircons.c +++ b/ir/ir/ircons.c @@ -617,9 +617,9 @@ new_bd_SymConst_type(dbg_info *db, ir_node *block, ir_mode *mode, ir_graph *irg = current_ir_graph; ir_node *res = new_ir_node(db, irg, block, op_SymConst, mode, 0, NULL); - res->attr.symc.num = symkind; - res->attr.symc.sym = value; - res->attr.symc.tp = tp; + res->attr.symc.kind = symkind; + res->attr.symc.sym = value; + res->attr.symc.tp = tp; res = optimize_node(res); IRN_VRFY_IRG(res, irg); diff --git a/ir/ir/irnode.c b/ir/ir/irnode.c index 38c962f16..d98b1dec7 100644 --- a/ir/ir/irnode.c +++ b/ir/ir/irnode.c @@ -1100,13 +1100,13 @@ set_Const_type(ir_node *node, ir_type *tp) { symconst_kind get_SymConst_kind(const ir_node *node) { assert(node->op == op_SymConst); - return node->attr.symc.num; + return node->attr.symc.kind; } void -set_SymConst_kind(ir_node *node, symconst_kind num) { +set_SymConst_kind(ir_node *node, symconst_kind kind) { assert(node->op == op_SymConst); - node->attr.symc.num = num; + node->attr.symc.kind = kind; } ir_type * diff --git a/ir/ir/iropt.c b/ir/ir/iropt.c index ee92310ff..c2cecb135 100644 --- a/ir/ir/iropt.c +++ b/ir/ir/iropt.c @@ -5022,7 +5022,7 @@ static int node_cmp_attr_Free(ir_node *a, ir_node *b) { static int node_cmp_attr_SymConst(ir_node *a, ir_node *b) { const symconst_attr *pa = get_irn_symconst_attr(a); const symconst_attr *pb = get_irn_symconst_attr(b); - return (pa->num != pb->num) + return (pa->kind != pb->kind) || (pa->sym.type_p != pb->sym.type_p) || (pa->tp != pb->tp); } /* node_cmp_attr_SymConst */ diff --git a/ir/ir/irtypes.h b/ir/ir/irtypes.h index ebb68e8b8..e69ae2114 100644 --- a/ir/ir/irtypes.h +++ b/ir/ir/irtypes.h @@ -164,8 +164,8 @@ typedef struct { /** SymConst attributes. */ typedef struct { symconst_symbol sym; // old tori - symconst_kind num; - ir_type *tp; /**< the source type, for analyses. default: type_unknown. */ + symconst_kind kind; + ir_type *tp; /**< the source type, for analyses. default: type_unknown. */ } symconst_attr; /** Sel attributes. */ @@ -193,8 +193,8 @@ typedef struct { /** Alloc attributes. */ typedef struct { except_attr exc; /**< the exception attribute. MUST be the first one. */ - ir_type *type; /**< Type of the allocated object. */ - ir_where_alloc where; /**< stack, heap or other managed part of memory */ + ir_where_alloc where; /**< stack, heap or other managed part of memory */ + ir_type *type; /**< Type of the allocated object. */ } alloc_attr; /** Free attributes. */ @@ -218,7 +218,7 @@ typedef struct { /** CallBegin attributes. */ typedef struct { - ir_node * call; /**< Associated Call-operation. */ + ir_node *call; /**< Associated Call-operation. */ } callbegin_attr; /** Cast attributes. */ @@ -229,9 +229,9 @@ typedef struct { /** Load attributes. */ typedef struct { except_attr exc; /**< The exception attribute. MUST be the first one. */ + unsigned volatility:1; /**< The volatility of this Load operation. */ + unsigned aligned:1; /**< The align attribute of this Load operation. */ ir_mode *load_mode; /**< The mode of this Load operation. */ - unsigned volatility:1; /**< The volatility of this Load operation. */ - unsigned aligned:1; /**< The align attribute of this Load operation. */ } load_attr; /** Store attributes. */ @@ -285,11 +285,11 @@ typedef struct { /** Inline Assembler support attribute. */ typedef struct { - op_pin_state pin_state; /**< the pin state for operations that might generate a exception */ ident *asm_text; /**< The inline assembler text. */ ir_asm_constraint *inputs; /**< Input constraints. */ ir_asm_constraint *outputs; /**< Output constraints. */ ident **clobber; /**< List of clobbered registers. */ + op_pin_state pin_state; /**< the pin state for operations that might generate a exception */ } asm_attr; /** Some IR-nodes just have one attribute, these are stored here, @@ -337,11 +337,11 @@ typedef irn_edge_info_t irn_edges_info_t[EDGE_KIND_LAST]; struct ir_node { /* ------- Basics of the representation ------- */ firm_kind kind; /**< Distinguishes this node from others. */ + unsigned node_idx; /**< The node index of this node in its graph. */ ir_op *op; /**< The Opcode of this node. */ ir_mode *mode; /**< The Mode of this node. */ struct ir_node **in; /**< The array of predecessors / operands. */ unsigned long visited; /**< The visited counter for walks of the graph. */ - unsigned node_idx; /**< The node index of this node in its graph. */ void *link; /**< To attach additional information to the node, e.g. used while construction to link Phi0 nodes and during optimization to link to nodes that @@ -375,14 +375,10 @@ struct ir_node { * Edge info to put into an irg. */ typedef struct _irg_edge_info_t { -#if 0 - set *edges; /**< a set containing all edges of a graph. */ -#else ir_edgeset_t edges; struct obstack edges_obst; unsigned allocated : 1; -#endif - unsigned activated : 1; /**< set if edges are activated for the graph. */ + unsigned activated : 1; /**< set if edges are activated for the graph. */ } irg_edge_info_t; typedef irg_edge_info_t irg_edges_info_t[EDGE_KIND_LAST]; @@ -423,6 +419,7 @@ typedef struct cg_callee_entry { struct ir_graph { firm_kind kind; /**< Always set to k_ir_graph. */ /* -- Basics of the representation -- */ + unsigned last_node_idx; /**< The last IR node index for this graph. */ ir_entity *ent; /**< The entity of this procedure, i.e., the type of the procedure and the class it belongs to. */ @@ -433,8 +430,6 @@ struct ir_graph { ir_node *current_block; /**< Current block for newly gen_*()-erated ir_nodes. */ struct obstack *extbb_obst; /**< The obstack for extended basic block info. */ - unsigned last_node_idx; /**< The last IR node index for this graph. */ - /* -- Fields for graph properties -- */ irg_inline_property inline_property; /**< How to handle inlineing. */ unsigned additional_properties; /**< Additional graph properties. */ -- 2.20.1