fixed some warnings
[libfirm] / ir / ir / irnode.c
index f4d51d8..e1c3f2e 100644 (file)
@@ -282,7 +282,7 @@ ir_node *
 }
 
 void
-set_irn_n(ir_node *node, int n, ir_node *in) {
+set_irn_n (ir_node *node, int n, ir_node *in) {
        assert(node && node->kind == k_ir_node);
        assert(-1 <= n);
        assert(n < get_irn_arity(node));
@@ -316,7 +316,8 @@ set_irn_n(ir_node *node, int n, ir_node *in) {
        node->in[n + 1] = in;
 }
 
-int add_irn_n(ir_node *node, ir_node *in) {
+int add_irn_n(ir_node *node, ir_node *in)
+{
        int pos;
        ir_graph *irg = get_irn_irg(node);
 
@@ -332,21 +333,25 @@ int add_irn_n(ir_node *node, ir_node *in) {
 }
 
 int
-(get_irn_deps)(const ir_node *node) {
+(get_irn_deps)(const ir_node *node)
+{
        return _get_irn_deps(node);
 }
 
 ir_node *
-(get_irn_dep)(const ir_node *node, int pos) {
+(get_irn_dep)(const ir_node *node, int pos)
+{
        return _get_irn_dep(node, pos);
 }
 
 void
-(set_irn_dep)(ir_node *node, int pos, ir_node *dep) {
+(set_irn_dep)(ir_node *node, int pos, ir_node *dep)
+{
        _set_irn_dep(node, pos, dep);
 }
 
-int add_irn_dep(ir_node *node, ir_node *dep) {
+int add_irn_dep(ir_node *node, ir_node *dep)
+{
        int res = 0;
 
        if (node->deps == NULL) {
@@ -646,14 +651,17 @@ int get_irn_pred_pos(ir_node *node, ir_node *arg) {
 
 /** manipulate fields of individual nodes **/
 
+/* this works for all except Block */
 ir_node *
-(get_nodes_block)(const ir_node *node) {
-       return _get_nodes_block(node);
+get_nodes_block(const ir_node *node) {
+       assert(node->op != op_Block);
+       return get_irn_n(node, -1);
 }
 
 void
 set_nodes_block(ir_node *node, ir_node *block) {
-       node->op->ops.set_block(node, block);
+       assert(node->op != op_Block);
+       set_irn_n(node, -1, block);
 }
 
 /* Test whether arbitrary node is frame pointer, i.e. Proj(pn_Start_P_frame_base)
@@ -862,6 +870,22 @@ ir_graph *get_Block_irg(const ir_node *block) {
        return block->attr.block.irg;
 }
 
+int has_Block_label(const ir_node *block) {
+       assert(is_Block(block));
+       return block->attr.block.has_label;
+}
+
+ir_label_t get_Block_label(const ir_node *block) {
+       assert(is_Block(block));
+       return block->attr.block.label;
+}
+
+void set_Block_label(ir_node *block, ir_label_t label) {
+       assert(is_Block(block));
+       block->attr.block.has_label = 1;
+       block->attr.block.label = label;
+}
+
 int
 get_End_n_keepalives(ir_node *end) {
        assert(end->op == op_End);
@@ -1160,6 +1184,16 @@ set_SymConst_symbol(ir_node *node, union symconst_symbol sym) {
        node->attr.symc.sym = sym;
 }
 
+ir_label_t get_SymConst_label(const ir_node *node) {
+       assert(node->op == op_SymConst && SYMCONST_HAS_LABEL(get_SymConst_kind(node)));
+       return node->attr.symc.sym.label;
+}
+
+void set_SymConst_label(ir_node *node, ir_label_t label) {
+       assert(node->op == op_SymConst && SYMCONST_HAS_LABEL(get_SymConst_kind(node)));
+       node->attr.symc.sym.label = label;
+}
+
 ir_type *
 get_SymConst_value_type(ir_node *node) {
        assert(node->op == op_SymConst);
@@ -1691,6 +1725,18 @@ set_Load_volatility(ir_node *node, ir_volatility volatility) {
        node->attr.load.volatility = volatility;
 }
 
+ir_align
+get_Load_align(ir_node *node) {
+       assert(node->op == op_Load);
+       return node->attr.load.aligned;
+}
+
+void
+set_Load_align(ir_node *node, ir_align align) {
+       assert(node->op == op_Load);
+       node->attr.load.aligned = align;
+}
+
 
 ir_node *
 get_Store_mem(ir_node *node) {
@@ -1740,6 +1786,18 @@ set_Store_volatility(ir_node *node, ir_volatility volatility) {
        node->attr.store.volatility = volatility;
 }
 
+ir_align
+get_Store_align(ir_node *node) {
+       assert(node->op == op_Store);
+       return node->attr.store.aligned;
+}
+
+void
+set_Store_align(ir_node *node, ir_align align) {
+       assert(node->op == op_Store);
+       node->attr.store.aligned = align;
+}
+
 
 ir_node *
 get_Alloc_mem(ir_node *node) {
@@ -2388,9 +2446,9 @@ get_irn_irg(const ir_node *node) {
         * irg.
         */
        if (! is_Block(node))
-               node = get_nodes_block(node);
+               node = get_irn_n(node, -1);
        if (is_Bad(node))  /* sometimes bad is predecessor of nodes instead of block: in case of optimization */
-               node = get_nodes_block(node);
+               node = get_irn_n(node, -1);
        assert(get_irn_op(node) == op_Block);
        return node->attr.block.irg;
 }
@@ -2589,6 +2647,26 @@ int
        return _is_Sub(node);
 }
 
+int
+(is_Shl)(const ir_node *node) {
+       return _is_Shl(node);
+}
+
+int
+(is_Shr)(const ir_node *node) {
+       return _is_Shr(node);
+}
+
+int
+(is_Shrs)(const ir_node *node) {
+       return _is_Shrs(node);
+}
+
+int
+(is_Rot)(const ir_node *node) {
+       return _is_Rot(node);
+}
+
 int
 (is_Not)(const ir_node *node) {
        return _is_Not(node);
@@ -2985,7 +3063,7 @@ void dump_irn(ir_node *n) {
        int i, arity = get_irn_arity(n);
        printf("%s%s: %ld (%p)\n", get_irn_opname(n), get_mode_name(get_irn_mode(n)), get_irn_node_nr(n), (void *)n);
        if (!is_Block(n)) {
-               ir_node *pred = get_nodes_block(n);
+               ir_node *pred = get_irn_n(n, -1);
                printf("  block: %s%s: %ld (%p)\n", get_irn_opname(pred), get_mode_name(get_irn_mode(pred)),
                        get_irn_node_nr(pred), (void *)pred);
        }