static int dump_const_local = 1;
/** An option to dump the node index number. */
static int dump_node_idx_labels = 0;
+/** An option to dump the node number */
+static int dump_node_nr = 0;
/** An option to dump all graph anchors */
static int dump_anchors = 0;
/** An option to dump the macro block edges. */
switch (get_irn_opcode(n)) {
case iro_SymConst:
switch (get_SymConst_kind(n)) {
- case symconst_addr_name:
- /* don't use get_SymConst_ptr_info as it mangles the name. */
- fprintf(F, "SymC %s", get_id_str(get_SymConst_name(n)));
- break;
case symconst_addr_ent:
fprintf(F, "SymC &%s", get_entity_name(get_SymConst_entity(n)));
break;
}
break;
+#ifdef INTERPROCEDURAL_VIEW
case iro_Filter:
if (!get_interprocedural_view())
fprintf(F, "Proj'");
else
goto default_case;
break;
+#endif
case iro_Proj: {
ir_node *pred = get_Proj_pred(n);
else
goto default_case;
} break;
+
+#ifdef INTERPROCEDURAL_VIEW
case iro_Start:
case iro_End:
case iro_EndExcept:
break;
} else
goto default_case;
+#endif
case iro_CallBegin: {
ir_node *addr = get_CallBegin_ptr(n);
fprintf(F, "%s", get_irn_opname(n));
break;
case iro_Block:
- fprintf(F, "%s%s%s",
- is_Block_dead(n) ? "Dead " : "", get_irn_opname(n),
+ if (is_Block_dead(n))
+ fputs("Dead ", F);
+ if (n == get_irg_start_block(get_irn_irg(n)))
+ fputs("Start ", F);
+ if (n == get_irg_end_block(get_irn_irg(n)))
+ fputs("End ", F);
+ fprintf(F, "%s%s", get_irn_opname(n),
dump_block_marker ? (get_Block_mark(n) ? "*" : "") : "");
break;
case iro_Conv:
return ops->dump_node(n, F, dump_node_nodeattr_txt);
switch (get_irn_opcode(n)) {
- case iro_Start:
- if (0 && get_interprocedural_view()) {
- fprintf(F, "%s ", get_ent_dump_name(get_irg_entity(current_ir_graph)));
- }
- break;
-
case iro_Const:
ir_fprintf(F, "%T ", get_Const_tarval(n));
break;
case iro_Proj:
pred = get_Proj_pred(n);
proj_nr = get_Proj_proj(n);
+#ifdef INTERPROCEDURAL_VIEW
handle_lut:
+#endif
code = get_irn_opcode(pred);
if (code == iro_Cmp)
break;
case iro_Filter:
proj_nr = get_Filter_proj(n);
+#ifdef INTERPROCEDURAL_VIEW
if (! get_interprocedural_view()) {
/* it's a Proj' */
pred = get_Filter_pred(n);
goto handle_lut;
} else
+#endif
fprintf(F, "%ld ", proj_nr);
break;
case iro_Sel:
fprintf(F, " ");
bad |= dump_node_typeinfo(F, n);
bad |= dump_node_nodeattr(F, n);
- if (dump_node_idx_labels) {
- fprintf(F, "%ld:%d", get_irn_node_nr(n), get_irn_idx(n));
- } else {
+ if (dump_node_nr) {
fprintf(F, "%ld", get_irn_node_nr(n));
}
+ if (dump_node_idx_labels) {
+ fprintf(F, ":%u", get_irn_idx(n));
+ }
return bad;
}
/* Dumps the vrp information of a node to a file */
int dump_vrp_info(FILE *F, ir_node *n)
{
- if (!n->vrp.valid) {
+ vrp_attr *vrp = vrp_get_info(n);
+ if (!n) {
return 1;
}
- fprintf(F, "range_type: %d\n", n->vrp.range_type);
- if (n->vrp.range_type == VRP_RANGE || n->vrp.range_type ==
+ 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",n->vrp.range_bottom);
- ir_fprintf(F, "range_top: %F\n", n->vrp.range_top);
- }
- ir_fprintf(F, "bits_set: %T\n", n->vrp.bits_set);
- ir_fprintf(F, "bits_not_set: %T\n", n->vrp.bits_not_set);
- if (n->vrp.bits_node == NULL) {
- fprintf(F, "bits_node: None");
- } else {
- fprintf(F, "bits_node: #%ld\n", get_irn_node_nr(n->vrp.bits_node));
+ 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);
return 0;
}
print_vcg_color(F, ird_color_uses_memory);
} else if (is_op_cfopcode(op) || is_op_forking(op)) {
print_vcg_color(F, ird_color_controlflow);
- } else {
- PRINT_DEFAULT_NODE_ATTR;
}
}
}
static void dump_ir_data_edges(FILE *F, ir_node *n)
{
int i, num;
- ir_visited_t visited = get_irn_visited(n);
if (!dump_keepalive && is_End(n)) {
/* the End node has only keep-alive edges */
ir_node *pred = get_irn_n(n, i);
assert(pred);
- if ((get_interprocedural_view() && get_irn_visited(pred) < visited))
+#ifdef INTERPROCEDURAL_VIEW
+ if ((get_interprocedural_view() && get_irn_visited(pred) < get_irn_visited(n)))
continue; /* pred not dumped */
+#endif
if (dump_backedge_information_flag && is_backedge(n, i))
fprintf(F, "backedge: {sourcename: \"");
}
-void dump_entity_node(FILE *F, ir_entity *ent)
+static void dump_entity_node(FILE *F, ir_entity *ent)
{
fprintf(F, "node: {title: \"");
PRINT_ENTID(ent); fprintf(F, "\"");
- fprintf(F, DEFAULT_TYPE_ATTRIBUTE);
- fprintf(F, "label: ");
+ fprintf(F, " label: ");
fprintf(F, "\"%s\" ", get_ent_dump_name(ent));
print_vcg_color(F, ird_color_entity);
strncpy(buf, "<not set>", sizeof(buf));
fprintf(F, "node: {title: \"");
PRINT_ITEMID(tp, pos); fprintf(F, "\"");
- fprintf(F, DEFAULT_ENUM_ITEM_ATTRIBUTE);
- fprintf(F, "label: ");
+ fprintf(F, " label: ");
fprintf(F, "\"enum item %s\" " ENUM_ITEM_NODE_ATTR, get_id_str(id));
fprintf(F, "\n info1: \"value: %s\"}\n", buf);
}
rem = current_ir_graph;
current_ir_graph = irg;
+ (void) suffix_ip;
+#ifdef INTERPROCEDURAL_VIEW
if (get_interprocedural_view())
suffix1 = suffix_ip;
else
+#endif
suffix1 = suffix_nonip;
current_ir_graph = rem;
return 0;
}
-ir_prog_pass_t *dump_all_ir_graph_pass(
- const char *name, dump_graph_func *dump_graph, const char *suffix) {
+ir_prog_pass_t *dump_all_ir_graph_pass(const char *name,
+ dump_graph_func *dump_graph,
+ const char *suffix)
+{
size_t len = strlen(suffix);
struct pass_t *pass = xmalloc(sizeof(*pass) + len);
ir_prog_pass_t *res = def_prog_pass_constructor(
* packed together in one subgraph/box *
*--------------------------------------------------------------------------------*/
-void dump_loops_standalone(FILE *F, ir_loop *loop)
+static void dump_loops_standalone(FILE *F, ir_loop *loop)
{
int i = 0, loop_node_started = 0, son_number = 0, first = 0;
loop_element le;
/* Dumps the firm nodes in the loop tree to a graph along with the loop nodes.*/
/*----------------------------------------------------------------------------*/
-void collect_nodeloop(FILE *F, ir_loop *loop, eset *loopnodes)
+static void collect_nodeloop(FILE *F, ir_loop *loop, eset *loopnodes)
{
int i, son_number = 0, node_number = 0;
}
}
-void collect_nodeloop_external_nodes(ir_loop *loop, eset *loopnodes, eset *extnodes)
+static void collect_nodeloop_external_nodes(ir_loop *loop, eset *loopnodes,
+ eset *extnodes)
{
int i, j, start;