get_irn_MacroBlock() added
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Sun, 6 Jan 2008 14:40:02 +0000 (14:40 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Sun, 6 Jan 2008 14:40:02 +0000 (14:40 +0000)
[r17165]

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

index 65ecdae..384c137 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);
+/** 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. */
 ir_graph *get_Block_irg(const ir_node *block);
 /** Returns non-zero if the block has an assigned label. */
index 478a42a..1df769d 100644 (file)
@@ -877,6 +877,13 @@ ir_node *get_Block_MacroBlock(const ir_node *block) {
        return mbh;
 }
 
+/* returns the macro block header of a node. */
+ir_node *get_irn_MacroBlock(const ir_node *n) {
+       if (! is_Block(n))
+               n = get_nodes_block(n);
+       return get_Block_MacroBlock(n);
+}
+
 /* returns the graph of a Block. */
 ir_graph *get_Block_irg(const ir_node *block) {
        assert(is_Block(block));