use xmalloc instead of malloc
[libfirm] / ir / ir / irdump.c
index c014655..ccb1d32 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. */
@@ -805,6 +818,7 @@ static const pns_lookup_t start_lut[] = {
   X(X_initial_exec),
   X(P_frame_base),
   X(P_globals),
+  X(P_tls),
   X(T_args),
   X(P_value_arg_base)
 #undef X
@@ -925,7 +939,6 @@ static const pns_lookup_t bound_lut[] = {
   X(M),
   X(X_except),
   X(res),
-  X(M_except)
 #undef X
 };
 
@@ -1524,6 +1537,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 +1676,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);
@@ -2204,7 +2217,7 @@ FILE *vcg_open (ir_graph *irg, const char * suffix1, const char *suffix2) {
   if (!suffix2) suffix2 = "";
 
   /* open file for vcg graph */
-  fname = malloc (len * 2 + strlen(suffix1) + strlen(suffix2) + 5);
+  fname = xmalloc (len * 2 + strlen(suffix1) + strlen(suffix2) + 5);
 
   /* strncpy (fname, nm, len); */     /* copy the filename */
   j = 0;