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 *
/** 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