out edges for entities and types
[libfirm] / ir / ir / irdump.c
index 46fc90c..8d5227b 100644 (file)
@@ -564,7 +564,7 @@ static int dump_node_typeinfo(FILE *F, ir_node *n) {
   if (opt_dump_analysed_type_info) {
     if (get_irg_typeinfo_state(current_ir_graph) == irg_typeinfo_consistent  ||
         get_irg_typeinfo_state(current_ir_graph) == irg_typeinfo_inconsistent) {
-      type *tp = get_irn_type(n);
+      type *tp = get_irn_typeinfo_type(n);
       if (tp != none_type)
         fprintf(F, " [%s]", get_type_name_ex(tp, &bad));
       else
@@ -742,18 +742,20 @@ static INLINE int dump_node_info(FILE *F, ir_node *n)
   case iro_Call: {
     type *tp = get_Call_type(n);
     fprintf(F, "calling method of type %s \n", get_type_name_ex(tp, &bad));
-    for (i = 0; i < get_method_n_params(tp); ++i)
-      fprintf(F, "  param %d type: %s \n", i, get_type_name_ex(get_method_param_type(tp, i), &bad));
-    for (i = 0; i < get_method_n_ress(tp); ++i)
-      fprintf(F, "  resul %d type: %s \n", i, get_type_name_ex(get_method_res_type(tp, i), &bad));
+    if(get_unknown_type() != tp) {
+      for (i = 0; i < get_method_n_params(tp); ++i)
+       fprintf(F, "  param %d type: %s \n", i, get_type_name_ex(get_method_param_type(tp, i), &bad));
+      for (i = 0; i < get_method_n_ress(tp); ++i)
+       fprintf(F, "  resul %d type: %s \n", i, get_type_name_ex(get_method_res_type(tp, i), &bad));
+    }
     if (Call_has_callees(n)) {
       fprintf(F, "possible callees: \n");
       for (i = 0; i < get_Call_n_callees(n); i++) {
-    if (!get_Call_callee(n, i)) {
-      fprintf(F, "  %d external method\n", i);
-    } else {
-      fprintf(F, "  %d: %s\n", i, get_ent_dump_name(get_Call_callee(n, i)));
-    }
+       if (!get_Call_callee(n, i)) {
+         fprintf(F, "  %d external method\n", i);
+       } else {
+         fprintf(F, "  %d: %s\n", i, get_ent_dump_name(get_Call_callee(n, i)));
+       }
       }
     }
   } break;
@@ -799,6 +801,7 @@ static INLINE int dump_node_info(FILE *F, ir_node *n)
       fprintf(F, "kind size\n");
       break;
     }
+    fprintf(F, "SymConst of type %s \n", get_type_name_ex(get_SymConst_value_type(n), &bad));
   } break;
   case iro_Filter: {
     int i;
@@ -829,8 +832,8 @@ static INLINE int dump_node_info(FILE *F, ir_node *n)
 
   if (get_irg_typeinfo_state(get_irn_irg(n)) == irg_typeinfo_consistent  ||
       get_irg_typeinfo_state(get_irn_irg(n)) == irg_typeinfo_inconsistent  )
-    if (get_irn_type(n) != none_type)
-      fprintf (F, "\nAnalysed type: %s", get_type_name_ex(get_irn_type(n), &bad));
+    if (get_irn_typeinfo_type(n) != none_type)
+      fprintf (F, "\nAnalysed type: %s", get_type_name_ex(get_irn_typeinfo_type(n), &bad));
 
   fprintf (F, "\"");
 
@@ -2346,6 +2349,7 @@ void dump_loops_standalone(FILE *F, ir_loop *loop) {
       bad |= dump_node_nodeattr(F, n);
       fprintf (F, " %ld", get_irn_node_nr(n));
       if (is_Block(n)) fprintf (F, "\t ->%d", (int)get_irn_link(n));
+      if (has_backedges(n)) fprintf(F, "\t loop head!");
     } else { /* for callgraph loop tree */
       assert(get_kind(son) == k_ir_graph);
       /* We are a loop node -> Collect firm graphs */