irop_flag_highlevel flag added to Confirm and Cast
[libfirm] / ir / ir / irdumptxt.c
index 7cdaa19..578baa7 100644 (file)
@@ -473,24 +473,42 @@ void    dump_entity_to_file_prefix (FILE *F, entity *ent, char *prefix, unsigned
 
     if (is_Class_type(get_entity_owner(ent))) {
       if (get_entity_n_overwrites(ent) > 0) {
-           fprintf(F, "%s  overwrites:\n", prefix);
-           for (i = 0; i < get_entity_n_overwrites(ent); ++i) {
-             entity *ov = get_entity_overwrites(ent, i);
-             fprintf(F, "%s    %d: %s of class %s\n", prefix, i, get_entity_name(ov),
-                     get_type_name(get_entity_owner(ov)));
-           }
+       fprintf(F, "%s  overwrites:\n", prefix);
+       for (i = 0; i < get_entity_n_overwrites(ent); ++i) {
+         entity *ov = get_entity_overwrites(ent, i);
+         fprintf(F, "%s    %d: %s of class %s\n", prefix, i, get_entity_name(ov),
+                 get_type_name(get_entity_owner(ov)));
+       }
       } else {
-           fprintf(F, "%s  Does not overwrite other entities. \n", prefix);
+       fprintf(F, "%s  Does not overwrite other entities. \n", prefix);
       }
       if (get_entity_n_overwrittenby(ent) > 0) {
-           fprintf(F, "%s  overwritten by:\n", prefix);
-           for (i = 0; i < get_entity_n_overwrittenby(ent); ++i) {
-             entity *ov = get_entity_overwrittenby(ent, i);
-             fprintf(F, "%s    %d: %s of class %s\n", prefix, i, get_entity_name(ov),
-                     get_type_name(get_entity_owner(ov)));
+       fprintf(F, "%s  overwritten by:\n", prefix);
+       for (i = 0; i < get_entity_n_overwrittenby(ent); ++i) {
+         entity *ov = get_entity_overwrittenby(ent, i);
+         fprintf(F, "%s    %d: %s of class %s\n", prefix, i, get_entity_name(ov),
+                 get_type_name(get_entity_owner(ov)));
        }
       } else {
-           fprintf(F, "%s  Is not overwritten by other entities. \n", prefix);
+       fprintf(F, "%s  Is not overwritten by other entities. \n", prefix);
+      }
+
+      if (get_irp_inh_transitive_closure_state() != inh_transitive_closure_none) {
+       entity *ov;
+       fprintf(F, "%s  transitive overwrites:\n", prefix);
+       for (ov = get_entity_trans_overwrites_first(ent);
+            ov;
+            ov = get_entity_trans_overwrites_next(ent)) {
+         fprintf(F, "%s    : %s of class %s\n", prefix, get_entity_name(ov),
+                 get_type_name(get_entity_owner(ov)));
+       }
+       fprintf(F, "%s  transitive overwritten by:\n", prefix);
+       for (ov = get_entity_trans_overwrittenby_first(ent);
+            ov;
+            ov = get_entity_trans_overwrittenby_next(ent)) {
+         fprintf(F, "%s    : %s of class %s\n", prefix, get_entity_name(ov),
+                 get_type_name(get_entity_owner(ov)));
+       }
       }
     }
 
@@ -583,7 +601,7 @@ void    dump_entity_to_file_prefix (FILE *F, entity *ent, char *prefix, unsigned
   }
 
   if (get_trouts_state()) {
-    fprintf(F, "%sEntity outs:\n", prefix);
+    fprintf(F, "%s  Entity outs:\n", prefix);
     dump_node_list(F, (firm_kind *)ent, prefix, (int(*)(firm_kind *))get_entity_n_accesses,
                   (ir_node *(*)(firm_kind *, int))get_entity_access, "Accesses");
     dump_node_list(F, (firm_kind *)ent, prefix, (int(*)(firm_kind *))get_entity_n_references,
@@ -944,7 +962,24 @@ void dump_type_to_file (FILE *F, type *tp, dump_verbosity verbosity) {
         fprintf(F, "\n    %s", get_type_name(stp));
       }
 
-      fprintf(F, "\n  peculiarity: %s", get_peculiarity_string(get_class_peculiarity(tp)));
+      if (get_irp_inh_transitive_closure_state() != inh_transitive_closure_none) {
+       type *stp;
+       fprintf(F, "\n  transitive supertypes: ");
+       for (stp = get_class_trans_supertype_first(tp);
+            stp;
+            stp = get_class_trans_supertype_next(tp)) {
+         fprintf(F, "\n    %s", get_type_name(stp));
+       }
+       fprintf(F, "\n  transitive subtypes: ");
+       for (stp = get_class_trans_subtype_first(tp);
+            stp;
+            stp = get_class_trans_subtype_next(tp)) {
+         fprintf(F, "\n    %s", get_type_name(stp));
+       }
+      }
+
+      fprintf(F, "\n  peculiarity: %s\n", get_peculiarity_string(get_class_peculiarity(tp)));
+
     }
     break;
 
@@ -1007,12 +1042,13 @@ void dump_type_to_file (FILE *F, type *tp, dump_verbosity verbosity) {
   case tpo_pointer:
     if (verbosity & dump_verbosity_typeattrs) {
       type *tt = get_pointer_points_to_type(tp);
-      fprintf(F, "\n  points to %s (%ld)", get_type_name(tt), get_type_nr(tt));
+      fprintf(F, "\n  points to %s (%ld)\n", get_type_name(tt), get_type_nr(tt));
     }
     break;
 
   case tpo_method:
     if (verbosity & dump_verbosity_typeattrs) {
+      fprintf(F, "\n  variadicity: %s", get_variadicity_name(get_method_variadicity(tp)));
       fprintf(F, "\n  return types: %d", get_method_n_ress(tp));
       for (i = 0; i < get_method_n_ress(tp); ++i) {
         type *rtp = get_method_res_type(tp, i);
@@ -1024,7 +1060,6 @@ void dump_type_to_file (FILE *F, type *tp, dump_verbosity verbosity) {
         type *ptp = get_method_param_type(tp, i);
         fprintf(F, "\n    %s", get_type_name(ptp));
       }
-
       if (get_method_variadicity(tp)) {
         fprintf(F, "\n    ...");
       }
@@ -1036,6 +1071,7 @@ void dump_type_to_file (FILE *F, type *tp, dump_verbosity verbosity) {
   case tpo_id:
   case tpo_none:
   case tpo_unknown:
+      fprintf(F, "\n");
     break;
 
   default:
@@ -1047,7 +1083,7 @@ void dump_type_to_file (FILE *F, type *tp, dump_verbosity verbosity) {
   fprintf(F, "  state:     %s,\n", get_type_state_name(get_type_state(tp)));
   fprintf(F, "  size:      %2d Bits,\n",  get_type_size_bits(tp));
   fprintf(F, "  alignment: %2d Bits,\n",  get_type_alignment_bits(tp));
-  if (is_atomic_type(tp))
+  if (is_atomic_type(tp) || is_Method_type(tp))
     fprintf(F, "  mode:      %s,\n",  get_mode_name(get_type_mode(tp)));
   fprintf(F, "  dbg info:  %p,\n",  (void *)get_type_dbg_info(tp));