added new function to determine the predecessor position of node for a given predecessor
[libfirm] / ir / ir / irnode.c
index dafd5b4..904bd71 100644 (file)
@@ -564,6 +564,15 @@ unsigned (get_irn_idx)(const ir_node *node) {
   return _get_irn_idx(node);
 }
 
+int get_irn_pred_pos(ir_node *node, ir_node *arg) {
+  int i;
+  for (i = get_irn_arity(node) - 1; i >= 0; i--) {
+    if (get_irn_n(node, i) == arg)
+      return i;
+  }
+  return -1;
+}
+
 /** manipulate fields of individual nodes **/
 
 /* this works for all except Block */