From 2f2aa72ff134ccba36406df1e81da2f9d92aeaa4 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Thu, 14 Dec 2006 14:42:39 +0000 Subject: [PATCH] added a skip_Proj_const... [r8460] --- ir/ir/irnode.c | 24 +++++++++++++++++++----- ir/ir/irnode.h | 2 ++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/ir/ir/irnode.c b/ir/ir/irnode.c index cee393305..68d2d7061 100644 --- a/ir/ir/irnode.c +++ b/ir/ir/irnode.c @@ -2376,11 +2376,25 @@ get_irn_irg(const ir_node *node) { ir_node * skip_Proj (ir_node *node) { /* don't assert node !!! */ - if (node != NULL && is_Proj(node)) { - return get_Proj_pred(node); - } else { - return (ir_node*) node; - } + if (node == NULL) + return NULL; + + if (is_Proj(node)) + node = get_Proj_pred(node); + + return node; +} + +const ir_node * +skip_Proj_const (const ir_node *node) { + /* don't assert node !!! */ + if (node == NULL) + return NULL; + + if (is_Proj(node)) + node = get_Proj_pred(node); + + return node; } ir_node * diff --git a/ir/ir/irnode.h b/ir/ir/irnode.h index 5309e3c3d..c25970069 100644 --- a/ir/ir/irnode.h +++ b/ir/ir/irnode.h @@ -1111,6 +1111,8 @@ void set_Pin_op(ir_node *pin, ir_node *node); /** returns operand of node if node is a Proj. */ ir_node *skip_Proj(ir_node *node); +/** returns operand of node if node is a Proj. */ +const ir_node *skip_Proj_const(const ir_node *node); /** returns operand of node if node is a Id */ ir_node *skip_Id(ir_node *node); /* Old name is skip_nop(). */ /** returns corresponding operand of Tuple if node is a Proj from -- 2.20.1