X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firdump.c;h=7d1caaf7c5d5bc74a2c1cb9f583c5187df23dd19;hb=a1fc5d2a5ed66510bbb2199ea5ee75416755cf1c;hp=b1377a8a569484a93790ddb149a5c9531ee428c7;hpb=e3065a30c75cd442e53aa54b427f4d0c17b4b161;p=libfirm diff --git a/ir/ir/irdump.c b/ir/ir/irdump.c index b1377a8a5..7d1caaf7c 100644 --- a/ir/ir/irdump.c +++ b/ir/ir/irdump.c @@ -1004,13 +1004,10 @@ static void dump_node_nodeattr(FILE *F, ir_node *n) break; default: - ; - } /* end switch */ + break; + } } -#include -#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 */ + } } /*******************************************************************/ @@ -2181,12 +2198,12 @@ static void dump_blocks_as_subgraphs(FILE *out, ir_graph *irg) * from irg. */ for (i = get_irp_n_irgs(); i > 0;) { - ir_graph *irg = get_irp_irg(--i); - ir_node **arr = (ir_node**)ird_get_irg_link(irg); + ir_graph *other_irg = get_irp_irg(--i); + ir_node **arr = (ir_node**)ird_get_irg_link(other_irg); if (arr == NULL) continue; - dump_graph_from_list(out, irg); + dump_graph_from_list(out, other_irg); DEL_ARR_F(arr); } } @@ -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); @@ -2255,20 +2272,20 @@ static void dump_blocks_extbb_grouped(FILE *F, ir_graph *irg) print_dbg_info(F, get_entity_dbg_info(ent)); for (i = get_irp_n_irgs(); i > 0;) { - ir_graph *irg = get_irp_irg(--i); - list_tuple *lists = (list_tuple*)ird_get_irg_link(irg); + ir_graph *other_irg = get_irp_irg(--i); + list_tuple *lists = (list_tuple*)ird_get_irg_link(other_irg); if (lists) { /* dump the extended blocks first */ if (ARR_LEN(lists->extbb_list)) { - ird_set_irg_link(irg, lists->extbb_list); - dump_extblock_graph(F, irg); + ird_set_irg_link(other_irg, lists->extbb_list); + dump_extblock_graph(F, other_irg); } /* we may have blocks without extended blocks, bad for instance */ if (ARR_LEN(lists->blk_list)) { - ird_set_irg_link(irg, lists->blk_list); - dump_block_graph(F, irg); + ird_set_irg_link(other_irg, lists->blk_list); + dump_block_graph(F, other_irg); } DEL_ARR_F(lists->extbb_list); @@ -2319,7 +2336,7 @@ void dump_ir_graph_file(FILE *out, ir_graph *irg) /* dump the out edges in a separate walk */ if ((flags & ir_dump_flag_out_edges) - && (get_irg_outs_state(irg) != outs_none)) { + && (is_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_OUTS))) { irg_out_walk(get_irg_start(irg), dump_out_edge, NULL, out); } @@ -2330,7 +2347,6 @@ static void dump_block_to_cfg(ir_node *block, void *env) { FILE *F = (FILE*)env; int i; - ir_node *pred; if (is_Bad(block) && get_irn_mode(block) == mode_X) { dump_node(F, block); @@ -2375,16 +2391,16 @@ static void dump_block_to_cfg(ir_node *block, void *env) /* Dump dominator/postdominator edge */ if (ir_get_dump_flags() & ir_dump_flag_dominance) { - if (get_irg_dom_state(current_ir_graph) == dom_consistent && get_Block_idom(block)) { - pred = get_Block_idom(block); + if (is_irg_state(get_irn_irg(block), IR_GRAPH_STATE_CONSISTENT_DOMINANCE) && get_Block_idom(block)) { + ir_node *pred = get_Block_idom(block); fprintf(F, "edge: { sourcename: \""); PRINT_NODEID(block); fprintf(F, "\" targetname: \""); PRINT_NODEID(pred); fprintf(F, "\" " DOMINATOR_EDGE_ATTR "}\n"); } - if (get_irg_postdom_state(current_ir_graph) == dom_consistent && get_Block_ipostdom(block)) { - pred = get_Block_ipostdom(block); + if (is_irg_state(get_irn_irg(block), IR_GRAPH_STATE_CONSISTENT_POSTDOMINANCE) && get_Block_ipostdom(block)) { + ir_node *pred = get_Block_ipostdom(block); fprintf(F, "edge: { sourcename: \""); PRINT_NODEID(block); fprintf(F, "\" targetname: \"");