Added node info dump callbacks
[libfirm] / ir / ir / irnode.c
index 3389ab6..2c3a5a6 100644 (file)
@@ -137,11 +137,12 @@ new_ir_node (dbg_info *db, ir_graph *irg, ir_node *block, ir_op *op, ir_mode *mo
   memset(p, 0, node_size);
        res = (ir_node *) (p + firm_add_node_size);
 
-  res->kind    = k_ir_node;
-  res->op      = op;
-  res->mode    = mode;
-  res->visited = 0;
-  res->link    = NULL;
+  res->kind     = k_ir_node;
+  res->op       = op;
+  res->mode     = mode;
+  res->visited  = 0;
+  res->node_idx = get_irg_next_node_idx(irg);
+  res->link     = NULL;
   if (arity < 0) {
     res->in = NEW_ARR_F (ir_node *, 1);  /* 1: space for block */
   } else {
@@ -563,6 +564,11 @@ get_irn_generic_attr (ir_node *node) {
   return &node->attr;
 }
 
+unsigned (get_irn_idx)(const ir_node *node) {
+  assert(is_ir_node(node));
+  return _get_irn_idx(node);
+}
+
 /** manipulate fields of individual nodes **/
 
 /* this works for all except Block */