X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firnode.c;h=fb96fa8db0a7820e88e6f0df53e747a768e905d5;hb=bccd30d684ad0b08a697bdad571d34bd855a3dc2;hp=e811a749eb1959381b0b43f5a95afb197a3f8a05;hpb=f3b034366a1be7a8ee7f743d673b0343af79772c;p=libfirm diff --git a/ir/ir/irnode.c b/ir/ir/irnode.c index e811a749e..fb96fa8db 100644 --- a/ir/ir/irnode.c +++ b/ir/ir/irnode.c @@ -597,17 +597,15 @@ get_irn_block_attr(ir_node *node) { } load_attr -get_irn_load_attr(ir_node *node) -{ - assert(node->op == op_Load); - return node->attr.load; +get_irn_load_attr(ir_node *node) { + assert(node->op == op_Load); + return node->attr.load; } store_attr -get_irn_store_attr(ir_node *node) -{ - assert(node->op == op_Store); - return node->attr.store; +get_irn_store_attr(ir_node *node) { + assert(node->op == op_Store); + return node->attr.store; } except_attr @@ -617,9 +615,14 @@ get_irn_except_attr(ir_node *node) { return node->attr.except; } -void * -get_irn_generic_attr(ir_node *node) { - return &node->attr; +void *(get_irn_generic_attr)(ir_node *node) { + assert(is_ir_node(node)); + return _get_irn_generic_attr(node); +} + +const void *(get_irn_generic_attr_const)(const ir_node *node) { + assert(is_ir_node(node)); + return _get_irn_generic_attr_const(node); } unsigned (get_irn_idx)(const ir_node *node) { @@ -1098,7 +1101,7 @@ set_SymConst_type(ir_node *node, ir_type *tp) { } ident * -get_SymConst_name(ir_node *node) { +get_SymConst_name(const ir_node *node) { assert(node->op == op_SymConst && SYMCONST_HAS_ID(get_SymConst_kind(node))); return node->attr.symc.sym.ident_p; } @@ -1111,7 +1114,7 @@ set_SymConst_name(ir_node *node, ident *name) { /* Only to access SymConst of kind symconst_addr_ent. Else assertion: */ -ir_entity *get_SymConst_entity(ir_node *node) { +ir_entity *get_SymConst_entity(const ir_node *node) { assert(node->op == op_SymConst && SYMCONST_HAS_ENT(get_SymConst_kind(node))); return node->attr.symc.sym.entity_p; } @@ -1121,7 +1124,7 @@ void set_SymConst_entity(ir_node *node, ir_entity *ent) { node->attr.symc.sym.entity_p = ent; } -ir_enum_const *get_SymConst_enum(ir_node *node) { +ir_enum_const *get_SymConst_enum(const ir_node *node) { assert(node->op == op_SymConst && SYMCONST_HAS_ENUM(get_SymConst_kind(node))); return node->attr.symc.sym.enum_p; } @@ -1132,7 +1135,7 @@ void set_SymConst_enum(ir_node *node, ir_enum_const *ec) { } union symconst_symbol -get_SymConst_symbol(ir_node *node) { +get_SymConst_symbol(const ir_node *node) { assert(node->op == op_SymConst); return node->attr.symc.sym; } @@ -1352,7 +1355,7 @@ void set_CallBegin_call(ir_node *node, ir_node *call) { #define BINOP(OP) \ -ir_node * get_##OP##_left(ir_node *node) { \ +ir_node * get_##OP##_left(const ir_node *node) { \ assert(node->op == op_##OP); \ return get_irn_n(node, node->op->op_index); \ } \ @@ -1360,7 +1363,7 @@ void set_##OP##_left(ir_node *node, ir_node *left) { \ assert(node->op == op_##OP); \ set_irn_n(node, node->op->op_index, left); \ } \ -ir_node *get_##OP##_right(ir_node *node) { \ +ir_node *get_##OP##_right(const ir_node *node) { \ assert(node->op == op_##OP); \ return get_irn_n(node, node->op->op_index + 1); \ } \ @@ -1370,7 +1373,7 @@ void set_##OP##_right(ir_node *node, ir_node *right) { \ } #define UNOP(OP) \ -ir_node *get_##OP##_op(ir_node *node) { \ +ir_node *get_##OP##_op(const ir_node *node) { \ assert(node->op == op_##OP); \ return get_irn_n(node, node->op->op_index); \ } \ @@ -1489,7 +1492,7 @@ int } ir_node * -get_unop_op(ir_node *node) { +get_unop_op(const ir_node *node) { if (node->op->opar == oparity_unary) return get_irn_n(node, node->op->op_index); @@ -1511,7 +1514,7 @@ int } ir_node * -get_binop_left(ir_node *node) { +get_binop_left(const ir_node *node) { assert(node->op->opar == oparity_binary); return get_irn_n(node, node->op->op_index); } @@ -1523,7 +1526,7 @@ set_binop_left(ir_node *node, ir_node *left) { } ir_node * -get_binop_right(ir_node *node) { +get_binop_right(const ir_node *node) { assert(node->op->opar == oparity_binary); return get_irn_n(node, node->op->op_index + 1); } @@ -2306,7 +2309,7 @@ void set_Bound_upper(ir_node *bound, ir_node *upper) { } /* Return the operand of a Pin node. */ -ir_node *get_Pin_op(ir_node *pin) { +ir_node *get_Pin_op(const ir_node *pin) { assert(pin->op == op_Pin); return get_irn_n(pin, 0); } @@ -2523,6 +2526,11 @@ int return _is_Const(node); } +int +(is_Conv)(const ir_node *node) { + return _is_Conv(node); +} + int (is_no_Block)(const ir_node *node) { return _is_no_Block(node);