ir_mode: simplify interface, improve float-mode handling
[libfirm] / ir / ir / irdump.c
index 995d2e3..7d1caaf 100644 (file)
@@ -1005,12 +1005,9 @@ static void dump_node_nodeattr(FILE *F, ir_node *n)
 
        default:
                break;
-       } /* end switch */
+       }
 }
 
-#include <math.h>
-#include "execution_frequency.h"
-
 static void dump_node_ana_vals(FILE *F, ir_node *n)
 {
        (void) F;
@@ -1034,23 +1031,6 @@ void dump_node_label(FILE *F, ir_node *n)
        }
 }
 
-void dump_vrp_info(FILE *F, ir_node *n)
-{
-       vrp_attr *vrp = vrp_get_info(n);
-       if (n == NULL) {
-               return;
-       }
-
-       fprintf(F, "range_type: %d\n", (int) vrp->range_type);
-       if (vrp->range_type == VRP_RANGE || vrp->range_type ==
-                       VRP_ANTIRANGE) {
-               ir_fprintf(F, "range_bottom: %F\n",vrp->range_bottom);
-               ir_fprintf(F, "range_top: %F\n", vrp->range_top);
-       }
-       ir_fprintf(F, "bits_set: %T\n", vrp->bits_set);
-       ir_fprintf(F, "bits_not_set: %T\n", vrp->bits_not_set);
-}
-
 /**
  * Dumps the attributes of a node n into the file F.
  * Currently this is only the color of a node.
@@ -1127,7 +1107,7 @@ static void dump_node_vcgattr(FILE *F, ir_node *node, ir_node *local, int bad)
 
 void *dump_add_node_info_callback(dump_node_info_cb_t *cb, void *data)
 {
-       hook_entry_t *info = XMALLOC(hook_entry_t);
+       hook_entry_t *info = XMALLOCZ(hook_entry_t);
 
        info->hook._hook_node_info = cb;
        info->context              = data;
@@ -1608,7 +1588,8 @@ static void dump_block_graph(FILE *F, ir_graph *irg)
                        dump_ir_edges(node, F);
        }
 
-       if ((flags & ir_dump_flag_loops) && (get_irg_loopinfo_state(irg) & loopinfo_valid))
+       if ((flags & ir_dump_flag_loops)
+            && is_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_LOOPINFO))
                dump_loop_nodes_into_graph(F, irg);
 
        current_ir_graph = rem;
@@ -1622,6 +1603,42 @@ static void dump_graph_info(FILE *F, ir_graph *irg)
 {
        fprintf(F, "info1: \"");
        dump_entity_to_file(F, get_irg_entity(irg));
+       fprintf(F, "\n");
+
+       /* dump graph state */
+       fprintf(F, "state:");
+       if (is_irg_state(irg, IR_GRAPH_STATE_ARCH_DEP))
+               fprintf(F, " arch_dep");
+       if (is_irg_state(irg, IR_GRAPH_STATE_MODEB_LOWERED))
+               fprintf(F, " modeb_lowered");
+       if (is_irg_state(irg, IR_GRAPH_STATE_NORMALISATION2))
+               fprintf(F, " normalisation2");
+       if (is_irg_state(irg, IR_GRAPH_STATE_IMPLICIT_BITFIELD_MASKING))
+               fprintf(F, " implicit_bitfield_masking");
+       if (is_irg_state(irg, IR_GRAPH_STATE_OPTIMIZE_UNREACHABLE_CODE))
+               fprintf(F, " optimize_unreachable_code");
+       if (is_irg_state(irg, IR_GRAPH_STATE_NO_CRITICAL_EDGES))
+               fprintf(F, " no_critical_edges");
+       if (is_irg_state(irg, IR_GRAPH_STATE_NO_BADS))
+               fprintf(F, " no_bads");
+       if (is_irg_state(irg, IR_GRAPH_STATE_NO_UNREACHABLE_CODE))
+               fprintf(F, " no_unreachable_code");
+       if (is_irg_state(irg, IR_GRAPH_STATE_ONE_RETURN))
+               fprintf(F, " one_return");
+       if (is_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_DOMINANCE))
+               fprintf(F, " consistent_dominance");
+       if (is_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_POSTDOMINANCE))
+               fprintf(F, " consistent_postdominance");
+       if (is_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_OUT_EDGES))
+               fprintf(F, " consistent_out_edges");
+       if (is_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_OUTS))
+               fprintf(F, " consistent_outs");
+       if (is_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_LOOPINFO))
+               fprintf(F, " consistent_loopinfo");
+       if (is_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_ENTITY_USAGE))
+               fprintf(F, " consistent_entity_usage");
+       if (is_irg_state(irg, IR_GRAPH_STATE_VALID_EXTENDED_BLOCKS))
+               fprintf(F, " valid_exended_blocks");
        fprintf(F, "\"\n");
 }
 
@@ -1726,7 +1743,7 @@ static void print_typespecific_info(FILE *F, ir_type *tp)
                break;
        default:
                break;
-       } /* switch type */
+       }
 }
 #endif
 
@@ -1753,7 +1770,7 @@ static void print_typespecific_vcgattr(FILE *F, ir_type *tp)
                break;
        default:
                break;
-       } /* switch type */
+       }
 }
 
 void dump_type_node(FILE *F, ir_type *tp)
@@ -1936,12 +1953,12 @@ static void dump_type_info(type_or_ent tore, void *env)
                        break;
                default:
                        break;
-               } /* switch type */
+               }
                break; /* case k_type */
        }
        default:
                printf(" *** irdump,  dump_type_info(l.%i), faulty type.\n", __LINE__);
-       } /* switch kind_or_entity */
+       }
 }
 
 /** For dumping class hierarchies.
@@ -1986,12 +2003,12 @@ static void dump_class_hierarchy_node(type_or_ent tore, void *ctx)
                        }
                        break;
                default: break;
-               } /* switch type */
+               }
                break; /* case k_type */
        }
        default:
                printf(" *** irdump,  dump_class_hierarchy_node(l.%i), faulty type.\n", __LINE__);
-       } /* switch kind_or_entity */
+       }
 }
 
 /*******************************************************************/
@@ -2229,7 +2246,7 @@ static void dump_extblock_graph(FILE *F, ir_graph *irg)
        }
 
        if ((flags & ir_dump_flag_loops)
-                       && (get_irg_loopinfo_state(irg) & loopinfo_valid))
+                       && (is_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_LOOPINFO)))
                dump_loop_nodes_into_graph(F, irg);
 
        current_ir_graph = rem;
@@ -2241,7 +2258,7 @@ static void dump_blocks_extbb_grouped(FILE *F, ir_graph *irg)
        size_t    i;
        ir_entity *ent = get_irg_entity(irg);
 
-       if (get_irg_extblk_state(irg) != ir_extblk_info_valid)
+       if (!is_irg_state(irg, IR_GRAPH_STATE_VALID_EXTENDED_BLOCKS))
                compute_extbb(irg);
 
        construct_extblock_lists(irg);