From 6dea1e5372e3b3d0996c1b2332afa79b75099987 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Sun, 6 Jan 2008 16:26:32 +0000 Subject: [PATCH] - removed skip_HighLevel() - add new skip_HighLevel_ops() skipping all Confirm, Cast nodes [r17169] --- include/libfirm/irnode.h | 4 ++-- ir/ir/irnode.c | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/libfirm/irnode.h b/include/libfirm/irnode.h index 384c1379c..e5cf4c7f9 100644 --- a/include/libfirm/irnode.h +++ b/include/libfirm/irnode.h @@ -1214,8 +1214,8 @@ ir_node *skip_Tuple(ir_node *node); ir_node *skip_Cast(ir_node *node); /** Returns operand of node if node is a Confirm */ ir_node *skip_Confirm(ir_node *node); -/** Skip all high-level Operations. */ -ir_node *skip_HighLevel(ir_node *node); +/** Skip all high-level Operations (including Cast, Confirm). */ +ir_node *skip_HighLevel_ops(ir_node *node); /** Returns true if irn is a Const node. */ int is_Const(const ir_node *node); /** Returns true if a node is a Conv node. */ diff --git a/ir/ir/irnode.c b/ir/ir/irnode.c index 1df769dce..708ac70bc 100644 --- a/ir/ir/irnode.c +++ b/ir/ir/irnode.c @@ -2550,9 +2550,10 @@ ir_node *skip_Confirm(ir_node *node) { } /* skip all high-level ops */ -ir_node *skip_HighLevel(ir_node *node) { - if (is_op_highlevel(get_irn_op(node))) - return get_irn_n(node, 0); +ir_node *skip_HighLevel_ops(ir_node *node) { + while (is_op_highlevel(get_irn_op(node))) { + node = get_irn_n(node, 0); + } return node; } -- 2.20.1