Handle const code irg
[libfirm] / ir / ir / irdump.c
index c014655..4c0af7b 100644 (file)
@@ -111,6 +111,19 @@ DUMP_NODE_EDGE_FUNC get_dump_node_edge_hook(void)
 }
 
 
+static DUMP_NODE_EDGE_FUNC dump_block_edge_hook = NULL;
+
+void set_dump_block_edge_hook(DUMP_NODE_EDGE_FUNC func)
+{
+  dump_block_edge_hook = func;
+}
+
+DUMP_NODE_EDGE_FUNC get_dump_block_edge_hook(void)
+{
+  return dump_node_edge_hook;
+}
+
+
 /** The vcg node attribute hook. */
 static DUMP_IR_GRAPH_FUNC dump_ir_graph_hook = NULL;
 /** The vcg node attribute hook. */
@@ -925,7 +938,6 @@ static const pns_lookup_t bound_lut[] = {
   X(M),
   X(X_except),
   X(res),
-  X(M_except)
 #undef X
 };
 
@@ -1524,6 +1536,9 @@ dump_whole_block(FILE *F, ir_node *block) {
   /* dump the blocks edges */
   dump_ir_data_edges(F, block);
 
+  if (dump_block_edge_hook)
+    dump_block_edge_hook(F, block);
+
   /* dump the nodes that go into the block */
   for (node = ird_get_irn_link(block); node; node = ird_get_irn_link(node)) {
     dump_node(F, node);
@@ -1660,11 +1675,8 @@ static void dump_node2type_edges(ir_node *n, void *env)
     /* @@@ some consts have an entity */
     break;
   case iro_SymConst:
-    if (   (get_SymConst_kind(n) ==symconst_type_tag)
-       || (get_SymConst_kind(n) ==symconst_size))
-      {
-        print_node_type_edge(F,n,get_SymConst_type(n),NODE2TYPE_EDGE_ATTR);
-      }
+    if (SYMCONST_HAS_TYPE(get_SymConst_kind(n)))
+      print_node_type_edge(F,n,get_SymConst_type(n),NODE2TYPE_EDGE_ATTR);
     break;
   case iro_Sel: {
       print_node_ent_edge(F,n,get_Sel_entity(n),NODE2TYPE_EDGE_ATTR);