- removed skip_HighLevel()
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Sun, 6 Jan 2008 16:26:32 +0000 (16:26 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Sun, 6 Jan 2008 16:26:32 +0000 (16:26 +0000)
- add new skip_HighLevel_ops() skipping all Confirm, Cast nodes

[r17169]

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

index 384c137..e5cf4c7 100644 (file)
@@ -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. */
index 1df769d..708ac70 100644 (file)
@@ -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;
 }