irg_block_edges_walk() implemented
[libfirm] / ir / ir / irnode.c
index cc871e5..e1c3f2e 100644 (file)
@@ -655,7 +655,6 @@ int get_irn_pred_pos(ir_node *node, ir_node *arg) {
 ir_node *
 get_nodes_block(const ir_node *node) {
        assert(node->op != op_Block);
-       assert(is_irn_pinned_in_irg(node) && "block info may be incorrect");
        return get_irn_n(node, -1);
 }
 
@@ -871,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);
@@ -1169,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);
@@ -1700,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) {
@@ -1749,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) {
@@ -2598,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);