set_Block_MacroBlock() added
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 28 Feb 2008 12:30:16 +0000 (12:30 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 28 Feb 2008 12:30:16 +0000 (12:30 +0000)
[r17913]

include/libfirm/irnode.h
ir/ir/irnode.c

index 227952c..23deea0 100644 (file)
@@ -403,6 +403,8 @@ ir_extblk *get_Block_extbb(const ir_node *block);
 void set_Block_extbb(ir_node *block, ir_extblk *extblk);
 /** Get the Macro Block header of a (sub-) block. */
 ir_node *get_Block_MacroBlock(const ir_node *block);
+/** Set the Macro Block header of a (sub-) block. */
+void set_Block_MacroBlock(ir_node *block, ir_node *mbh);
 /** Get the Macro Block header of a node. */
 ir_node *get_irn_MacroBlock(const ir_node *n);
 /** Returns the ir_graph this Block belongs to. */
index eff12dc..c3be35a 100644 (file)
@@ -806,7 +806,7 @@ void set_Block_extbb(ir_node *block, ir_extblk *extblk) {
        block->attr.block.extblk = extblk;
 }
 
-/* returns the macro block header of a block. */
+/* Returns the macro block header of a block.*/
 ir_node *get_Block_MacroBlock(const ir_node *block) {
        ir_node *mbh;
        assert(is_Block(block));
@@ -817,6 +817,13 @@ ir_node *get_Block_MacroBlock(const ir_node *block) {
        return mbh;
 }
 
+/* Sets the macro block header of a block. */
+void set_Block_MacroBlock(ir_node *block, ir_node *mbh) {
+       assert(is_Block(block));
+       assert(is_Block(mbh));
+       set_irn_n(block, -1, mbh);
+}
+
 /* returns the macro block header of a node. */
 ir_node *get_irn_MacroBlock(const ir_node *n) {
        if (! is_Block(n)) {