va_start(ap, fmt);
fprintf(F, "edge: { sourcename: "); PRINT_TYPEID(S);
fprintf(F, " targetname: "); PRINT_TYPEID(T);
- vfprintf(F, fmt, ap);
+ ir_vfprintf(F, fmt, ap);
fprintf(F,"}\n");
va_end(ap);
}
va_start(ap, fmt);
fprintf(F, "edge: { sourcename: "); PRINT_TYPEID(tp);
fprintf(F, " targetname: \""); PRINT_ENTID(ent); fprintf(F, "\"");
- vfprintf(F, fmt, ap);
+ ir_vfprintf(F, fmt, ap);
fprintf(F, "}\n");
va_end(ap);
}
fprintf(F, "edge: { sourcename: \"");
PRINT_ENTID(ent1);
fprintf(F, "\" targetname: \""); PRINT_ENTID(ent2); fprintf(F, "\"");
- vfprintf(F, fmt, ap);
+ ir_vfprintf(F, fmt, ap);
fprintf(F, " ");
if (color != ird_color_none)
print_vcg_color(F, color);
va_start(ap, fmt);
fprintf(F, "edge: { sourcename: \""); PRINT_ENTID(ent);
fprintf(F, "\" targetname: "); PRINT_TYPEID(tp);
- vfprintf(F, fmt, ap);
+ ir_vfprintf(F, fmt, ap);
fprintf(F,"}\n");
va_end(ap);
}
va_start(ap, fmt);
fprintf(F, "edge: { sourcename: \""); PRINT_NODEID(irn);
fprintf(F, "\" targetname: "); PRINT_TYPEID(tp);
- vfprintf(F, fmt, ap);
+ ir_vfprintf(F, fmt, ap);
fprintf(F,"}\n");
va_end(ap);
}
fprintf(F, "edge: { sourcename: \""); PRINT_NODEID(irn);
fprintf(F, "\" targetname: \""); PRINT_ENTID(ent);
fprintf(F, "\"");
- vfprintf(F, fmt, ap);
+ ir_vfprintf(F, fmt, ap);
fprintf(F,"}\n");
va_end(ap);
}
va_start(ap, fmt);
fprintf(F, "edge: { sourcename: \""); PRINT_ENTID(ent);
fprintf(F, "\" targetname: \""); PRINT_NODEID(irn); fprintf(F, "\"");
- vfprintf(F, fmt, ap);
+ ir_vfprintf(F, fmt, ap);
fprintf(F,"}\n");
va_end(ap);
}
* Prints the edge from a type tp to an enumeration item item with additional info fmt, ...
* to the file F.
*/
-static void print_enum_item_edge(FILE *F, const ir_type *tp, int item, const char *fmt, ...)
+static void print_enum_item_edge(FILE *F, const ir_type *tp, size_t item, const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
fprintf(F, "edge: { sourcename: "); PRINT_TYPEID(tp);
fprintf(F, " targetname: \""); PRINT_ITEMID(tp, item); fprintf(F, "\" ");
- vfprintf(F, fmt, ap);
+ ir_vfprintf(F, fmt, ap);
fprintf(F,"}\n");
va_end(ap);
}
*/
static ir_node **construct_block_lists(ir_graph *irg)
{
- int i;
+ size_t i;
int walk_flag = ir_resources_reserved(irg) & IR_RESOURCE_IRN_VISITED;
ir_graph *rem = current_ir_graph;
ir_free_resources(irg, IR_RESOURCE_IRN_VISITED);
}
- for (i = get_irp_n_irgs() - 1; i >= 0; --i)
- ird_set_irg_link(get_irp_irg(i), NULL);
+ for (i = get_irp_n_irgs(); i > 0;)
+ ird_set_irg_link(get_irp_irg(--i), NULL);
ird_walk_graph(current_ir_graph, clear_link, collect_node, current_ir_graph);
fprintf(F, "}\n");
}
-static void dump_enum_item(FILE *F, ir_type *tp, int pos)
+static void dump_enum_item(FILE *F, ir_type *tp, size_t pos)
{
char buf[1024];
ir_enum_const *ec = get_enumeration_const(tp, pos);
static void dump_type_info(type_or_ent tore, void *env)
{
FILE *F = (FILE*)env;
- int i = 0; /* to shutup gcc */
+ size_t i = 0; /* to shutup gcc */
/* dump this type or entity */
ENT_OWN_EDGE_ATTR "}\n", ent, get_entity_owner(ent));*/
print_ent_type_edge(F,ent, get_entity_type(ent), ENT_TYPE_EDGE_ATTR);
if (is_Class_type(get_entity_owner(ent))) {
- for (i = get_entity_n_overwrites(ent) - 1; i >= 0; --i)
- print_ent_ent_edge(F, ent, get_entity_overwrites(ent, i), 0, ird_color_none, ENT_OVERWRITES_EDGE_ATTR);
+ for (i = get_entity_n_overwrites(ent); i > 0;)
+ print_ent_ent_edge(F, ent, get_entity_overwrites(ent, --i), 0, ird_color_none, ENT_OVERWRITES_EDGE_ATTR);
}
/* attached subgraphs */
if (! (flags & ir_dump_flag_no_entity_values)) {
dump_entity_initializer(F, ent);
} else if (entity_has_compound_ent_values(ent)) {
/* old style compound entity values */
- for (i = get_compound_ent_n_values(ent) - 1; i >= 0; --i) {
- value = get_compound_ent_value(ent, i);
+ for (i = get_compound_ent_n_values(ent); i > 0;) {
+ value = get_compound_ent_value(ent, --i);
if (value) {
print_ent_node_edge(F, ent, value, ENT_VALUE_EDGE_ATTR, i);
dump_const_expression(F, value);
/* and now the edges */
switch (get_type_tpop_code(tp)) {
case tpo_class:
- for (i = get_class_n_supertypes(tp) - 1; i >= 0; --i)
+ for (i = get_class_n_supertypes(tp); i > 0;) {
+ --i;
print_type_type_edge(F, tp, get_class_supertype(tp, i), TYPE_SUPER_EDGE_ATTR);
- for (i = get_class_n_members(tp) - 1; i >= 0; --i)
+ }
+ for (i = get_class_n_members(tp); i > 0;) {
+ --i;
print_type_ent_edge(F, tp, get_class_member(tp, i), TYPE_MEMBER_EDGE_ATTR);
+ }
break;
case tpo_struct:
- for (i = get_struct_n_members(tp) - 1; i >= 0; --i)
+ for (i = get_struct_n_members(tp); i > 0;) {
+ --i;
print_type_ent_edge(F, tp, get_struct_member(tp, i), TYPE_MEMBER_EDGE_ATTR);
+ }
break;
case tpo_method:
- for (i = get_method_n_params(tp) - 1; i >= 0; --i)
+ for (i = get_method_n_params(tp); i > 0;) {
+ --i;
print_type_type_edge(F, tp, get_method_param_type(tp, i), METH_PAR_EDGE_ATTR,i);
- for (i = get_method_n_ress(tp) - 1; i >= 0; --i)
+ }
+ for (i = get_method_n_ress(tp); i > 0;) {
+ --i;
print_type_type_edge(F, tp, get_method_res_type(tp, i), METH_RES_EDGE_ATTR,i);
+ }
break;
case tpo_union:
- for (i = get_union_n_members(tp) - 1; i >= 0; --i)
+ for (i = get_union_n_members(tp); i >= 0;) {
+ --i;
print_type_ent_edge(F, tp, get_union_member(tp, i), UNION_EDGE_ATTR);
+ }
break;
case tpo_array:
print_type_type_edge(F, tp, get_array_element_type(tp), ARR_ELT_TYPE_EDGE_ATTR);
print_type_ent_edge(F, tp, get_array_element_entity(tp), ARR_ENT_EDGE_ATTR);
- for (i = get_array_n_dimensions(tp) - 1; i >= 0; --i) {
- ir_node *upper = get_array_upper_bound(tp, i);
- ir_node *lower = get_array_lower_bound(tp, i);
+ for (i = get_array_n_dimensions(tp); i > 0;) {
+ ir_node *upper, *lower;
+
+ --i;
+ upper = get_array_upper_bound(tp, i);
+ lower = get_array_lower_bound(tp, i);
print_node_type_edge(F, upper, tp, "label: \"upper %d\"", get_array_order(tp, i));
print_node_type_edge(F, lower, tp, "label: \"lower %d\"", get_array_order(tp, i));
dump_const_expression(F, upper);
}
break;
case tpo_enumeration:
- for (i = get_enumeration_n_enums(tp) - 1; i >= 0; --i) {
+ for (i = get_enumeration_n_enums(tp); i > 0;) {
+ --i;
dump_enum_item(F, tp, i);
- print_enum_item_edge(F, tp, i, "label: \"item %d\"", i);
+ print_enum_item_edge(F, tp, i, "label: \"item %zu\"", i);
}
break;
case tpo_pointer:
static void dump_class_hierarchy_node(type_or_ent tore, void *ctx)
{
FILE *F = (FILE*)ctx;
- int i = 0; /* to shutup gcc */
+ size_t i = 0; /* to shutup gcc */
/* dump this type or entity */
switch (get_kind(tore.ent)) {
dump_entity_node(F, ent);
/* The edges */
print_type_ent_edge(F, get_entity_owner(ent), ent, TYPE_MEMBER_EDGE_ATTR);
- for (i = get_entity_n_overwrites(ent) - 1; i >= 0; --i)
+ for (i = get_entity_n_overwrites(ent); i > 0;) {
+ --i;
print_ent_ent_edge(F, get_entity_overwrites(ent, i), ent, 0, ird_color_none, ENT_OVERWRITES_EDGE_ATTR);
+ }
}
break;
}
case tpo_class:
dump_type_node(F, tp);
/* and now the edges */
- for (i = get_class_n_supertypes(tp) - 1; i >= 0; --i) {
+ for (i = get_class_n_supertypes(tp); i > 0;) {
+ --i;
print_type_type_edge(F,tp,get_class_supertype(tp, i),TYPE_SUPER_EDGE_ATTR);
}
break;
fprintf(F, "}\n");
}
-static void dump_loop_node_edge(FILE *F, ir_loop *loop, int i)
+static void dump_loop_node_edge(FILE *F, ir_loop *loop, size_t i)
{
assert(loop);
fprintf(F, "edge: {sourcename: \"");
fprintf(F, "}\n");
}
-static void dump_loop_son_edge(FILE *F, ir_loop *loop, int i)
+static void dump_loop_son_edge(FILE *F, ir_loop *loop, size_t i)
{
assert(loop);
fprintf(F, "edge: {sourcename: \"");
PRINT_LOOPID(loop);
fprintf(F, "\" targetname: \"");
PRINT_LOOPID(get_loop_son(loop, i));
- fprintf(F, "\" color: darkgreen label: \"%lu\"}\n",
- (unsigned long) get_loop_element_pos(loop, get_loop_son(loop, i)));
+ ir_fprintf(F, "\" color: darkgreen label: \"%zu\"}\n",
+ get_loop_element_pos(loop, get_loop_son(loop, i)));
}
static void dump_loops(FILE *F, ir_loop *loop)
{
- int i;
+ size_t i;
/* dump this loop node */
dump_loop_node(F, loop);
/* dump edges to nodes in loop -- only if it is a real loop */
if (get_loop_depth(loop) != 0) {
- for (i = get_loop_n_nodes(loop) - 1; i >= 0; --i) {
+ for (i = get_loop_n_nodes(loop); i > 0;) {
+ --i;
dump_loop_node_edge(F, loop, i);
}
}
- for (i = get_loop_n_sons(loop) - 1; i >= 0; --i) {
+ for (i = get_loop_n_sons(loop); i > 0;) {
+ --i;
dump_loops(F, get_loop_son(loop, i));
dump_loop_son_edge(F, loop, i);
}
static void dump_blocks_as_subgraphs(FILE *out, ir_graph *irg)
{
- int i;
+ size_t i;
construct_block_lists(irg);
* only the requested irg but also all irgs that can be reached
* from irg.
*/
- for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
- ir_graph *irg = get_irp_irg(i);
+ 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);
if (arr == NULL)
continue;
static void dump_blocks_extbb_grouped(FILE *F, ir_graph *irg)
{
- int i;
+ size_t i;
ir_entity *ent = get_irg_entity(irg);
if (get_irg_extblk_state(irg) != ir_extblk_info_valid)
dump_graph_info(F, irg);
print_dbg_info(F, get_entity_dbg_info(ent));
- for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
- ir_graph *irg = get_irp_irg(i);
+ 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);
if (lists) {
void dump_callgraph(FILE *F)
{
- int i;
+ size_t i;
ir_dump_flags_t old_flags = ir_get_dump_flags();
ir_remove_dump_flags(ir_dump_flag_disable_edge_labels);
dump_vcg_header(F, "Callgraph", "Hierarchic", NULL);
- for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
- ir_graph *irg = get_irp_irg(i);
+ for (i = get_irp_n_irgs(); i > 0;) {
+ ir_graph *irg = get_irp_irg(--i);
ir_entity *ent = get_irg_entity(irg);
- int j;
- int n_callees = get_irg_n_callees(irg);
+ size_t j, n_callees = get_irg_n_callees(irg);
dump_entity_node(F, ent);
for (j = 0; j < n_callees; ++j) {
ir_entity *c = get_irg_entity(get_irg_callee(irg, j));
int be = is_irg_callee_backedge(irg, j);
const char *attr = be
- ? "label:\"recursion %d\""
- : "label:\"calls %d\"";
+ ? "label:\"recursion %zu\""
+ : "label:\"calls %zu\"";
print_ent_ent_edge(F, ent, c, be, ird_color_entity, attr,
get_irg_callee_loop_depth(irg, j));
}
void dump_all_ir_graphs(const char *suffix)
{
- int n_irgs = get_irp_n_irgs();
- int i;
+ size_t i, n_irgs = get_irp_n_irgs();
for (i = 0; i < n_irgs; ++i) {
ir_graph *irg = get_irp_irg(i);
#define ENUM_ITEM_NODE_ATTR "color: green"
#define ENT_TYPE_EDGE_ATTR "class: 3 label: \"type\" color: red"
#define ENT_OWN_EDGE_ATTR "class: 4 label: \"owner\" color: black"
-#define METH_PAR_EDGE_ATTR "class: 5 label: \"param %d\" color: green"
-#define METH_RES_EDGE_ATTR "class: 6 label: \"res %d\" color: green"
+#define METH_PAR_EDGE_ATTR "class: 5 label: \"param %zu\" color: green"
+#define METH_RES_EDGE_ATTR "class: 6 label: \"res %zu\" color: green"
#define TYPE_SUPER_EDGE_ATTR "class: 7 label: \"supertype\" color: red"
#define UNION_EDGE_ATTR "class: 8 label: \"component\" color: blue"
#define PTR_PTS_TO_EDGE_ATTR "class: 9 label: \"points to\" color:green"
#define ARR_ENT_EDGE_ATTR "class: 10 label: \"arr ent\" color: green"
#define ENT_OVERWRITES_EDGE_ATTR "class: 11 label: \"overwrites\" color:red"
#define ENT_VALUE_EDGE_ATTR "label: \"value %d\""
-#define ENT_CORR_EDGE_ATTR "label: \"value %d corresponds to \" "
+#define ENT_CORR_EDGE_ATTR "label: \"value %zu corresponds to \" "
#define TYPE_MEMBER_EDGE_ATTR "class: 12 label: \"member\" color:blue"
/* #define CALLGRAPH_EDGE_ATTR "calls" */
-#define PRINT_NODEID(X) fprintf(F, "n%ld", get_irn_node_nr(X))
-#define PRINT_TYPEID(X) fprintf(F, "\"t%ld\"", get_type_nr(X))
-#define PRINT_ENTID(X) fprintf(F, "e%ld", get_entity_nr(X))
-#define PRINT_IRGID(X) fprintf(F, "g%ld", get_irg_graph_nr(X))
-#define PRINT_CONSTID(X,Y) fprintf(F, "\"n%ldn%ld\"", get_irn_node_nr(X),get_irn_node_nr(Y))
-#define PRINT_CONSTBLKID(X,Y) fprintf(F, "n%ldb%ld", get_irn_node_nr(X),get_irn_node_nr(Y))
-#define PRINT_LOOPID(X) fprintf(F, "l%ld", get_loop_loop_nr(X))
-#define PRINT_ITEMID(X,Y) fprintf(F, "i%ldT%d", get_type_nr(X), (Y))
-#define PRINT_EXTBBID(X) fprintf(F, "x%ld", get_irn_node_nr(X))
+#define PRINT_NODEID(X) ir_fprintf(F, "n%ld", get_irn_node_nr(X))
+#define PRINT_TYPEID(X) ir_fprintf(F, "\"t%ld\"", get_type_nr(X))
+#define PRINT_ENTID(X) ir_fprintf(F, "e%ld", get_entity_nr(X))
+#define PRINT_IRGID(X) ir_fprintf(F, "g%ld", get_irg_graph_nr(X))
+#define PRINT_CONSTID(X,Y) ir_fprintf(F, "\"n%ldn%ld\"", get_irn_node_nr(X),get_irn_node_nr(Y))
+#define PRINT_CONSTBLKID(X,Y) ir_fprintf(F, "n%ldb%ld", get_irn_node_nr(X),get_irn_node_nr(Y))
+#define PRINT_LOOPID(X) ir_fprintf(F, "l%ld", get_loop_loop_nr(X))
+#define PRINT_ITEMID(X,Y) ir_fprintf(F, "i%ldT%zu", get_type_nr(X), (Y))
+#define PRINT_EXTBBID(X) ir_fprintf(F, "x%ld", get_irn_node_nr(X))
void dump_vcg_header(FILE *out, const char *name, const char *layout, const char *orientation);
void dump_vcg_footer(FILE *out);