From d82ebc4ecd2fe784a75bfe0b47773b04fb0f6613 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Sun, 6 Jan 2008 14:40:02 +0000 Subject: [PATCH] get_irn_MacroBlock() added [r17165] --- include/libfirm/irnode.h | 2 ++ ir/ir/irnode.c | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/include/libfirm/irnode.h b/include/libfirm/irnode.h index 65ecdae06..384c1379c 100644 --- a/include/libfirm/irnode.h +++ b/include/libfirm/irnode.h @@ -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. */ diff --git a/ir/ir/irnode.c b/ir/ir/irnode.c index 478a42a8b..1df769dce 100644 --- a/ir/ir/irnode.c +++ b/ir/ir/irnode.c @@ -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)); -- 2.20.1