fix mismatched decl/implementation
[libfirm] / ir / ir / irdump.c
index cf6c87a..71289d0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2010 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2011 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
@@ -275,7 +275,7 @@ static void print_type_type_edge(FILE *F, const ir_type *S, const ir_type *T, co
        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);
 }
@@ -291,7 +291,7 @@ static void print_type_ent_edge(FILE *F, const ir_type *tp, const ir_entity *ent
        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);
 }
@@ -311,7 +311,7 @@ static void print_ent_ent_edge(FILE *F, const ir_entity *ent1, const ir_entity *
                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);
@@ -330,7 +330,7 @@ static void print_ent_type_edge(FILE *F, const ir_entity *ent, const ir_type *tp
        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);
 }
@@ -346,7 +346,7 @@ static void print_node_type_edge(FILE *F, const ir_node *irn, ir_type *tp, const
        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);
 }
@@ -363,7 +363,7 @@ static void print_node_ent_edge(FILE *F, const ir_node *irn, const ir_entity *en
        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);
 }
@@ -379,7 +379,7 @@ static void print_ent_node_edge(FILE *F, const ir_entity *ent, const ir_node *ir
        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);
 }
@@ -388,14 +388,14 @@ static void print_ent_node_edge(FILE *F, const ir_entity *ent, const ir_node *ir
  * 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);
 }
@@ -404,7 +404,6 @@ static void print_enum_item_edge(FILE *F, const ir_type *tp, int item, const cha
 /* global and ahead declarations                                   */
 /*-----------------------------------------------------------------*/
 
-static void dump_node_with_edges(ir_node *n, void *env);
 static void dump_loop_nodes_into_graph(FILE *F, ir_graph *irg);
 
 /*-----------------------------------------------------------------*/
@@ -540,7 +539,7 @@ static void ird_walk_graph(ir_graph *irg, irg_walk_func *pre, irg_walk_func *pos
 }
 
 /**
- * Walker, allocates an array for all blocks and puts it's nodes non-floating
+ * Walker, allocates an array for all blocks and puts their non-floating
  * nodes into this array.
  */
 static void collect_node(ir_node *node, void *env)
@@ -579,7 +578,7 @@ static void collect_node(ir_node *node, void *env)
  */
 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;
 
@@ -589,8 +588,8 @@ static ir_node **construct_block_lists(ir_graph *irg)
                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);
 
@@ -614,7 +613,7 @@ typedef struct list_tuple {
 static list_tuple *construct_extblock_lists(ir_graph *irg)
 {
        ir_node **blk_list = construct_block_lists(irg);
-       int i;
+       size_t i, n;
        ir_graph *rem = current_ir_graph;
        list_tuple *lists = XMALLOC(list_tuple);
 
@@ -624,7 +623,7 @@ static list_tuple *construct_extblock_lists(ir_graph *irg)
        lists->extbb_list = NEW_ARR_F(ir_extblk *, 0);
 
        inc_irg_block_visited(irg);
-       for (i = ARR_LEN(blk_list) - 1; i >= 0; --i) {
+       for (i = 0, n = ARR_LEN(blk_list); i < n; ++i) {
                ir_extblk *ext;
 
                if (is_Block(blk_list[i])) {
@@ -691,12 +690,12 @@ void dump_node_opcode(FILE *F, ir_node *n)
        } break;
 
        case iro_Load:
-               if (get_Load_align(n) == align_non_aligned)
+               if (get_Load_unaligned(n) == align_non_aligned)
                        fprintf(F, "ua");
                fprintf(F, "%s[%s]", get_irn_opname(n), get_mode_name_ex(get_Load_mode(n), NULL));
                break;
        case iro_Store:
-               if (get_Store_align(n) == align_non_aligned)
+               if (get_Store_unaligned(n) == align_non_aligned)
                        fprintf(F, "ua");
                fprintf(F, "%s", get_irn_opname(n));
                break;
@@ -724,9 +723,6 @@ void dump_node_opcode(FILE *F, ir_node *n)
        case iro_Mod:
                fprintf(F, "%s[%s]", get_irn_opname(n), get_mode_name_ex(get_Mod_resmode(n), NULL));
                break;
-       case iro_DivMod:
-               fprintf(F, "%s[%s]", get_irn_opname(n), get_mode_name_ex(get_DivMod_resmode(n), NULL));
-               break;
        case iro_Builtin:
                fprintf(F, "%s[%s]", get_irn_opname(n), get_builtin_kind_name(get_Builtin_kind(n)));
                break;
@@ -810,8 +806,8 @@ typedef struct proj_lookup {
 static const pns_lookup_t start_lut[] = {
 #define X(a)    { pn_Start_##a, #a }
        X(X_initial_exec),
+       X(M),
        X(P_frame_base),
-       X(P_tls),
        X(T_args),
 #undef X
 };
@@ -831,28 +827,6 @@ static const pns_lookup_t call_lut[] = {
        X(X_regular),
        X(X_except),
        X(T_result),
-       X(P_value_res_base)
-#undef X
-};
-
-/** the lookup table for Proj(Quot) names */
-static const pns_lookup_t quot_lut[] = {
-#define X(a)    { pn_Quot_##a, #a }
-       X(M),
-       X(X_regular),
-       X(X_except),
-       X(res)
-#undef X
-};
-
-/** the lookup table for Proj(DivMod) names */
-static const pns_lookup_t divmod_lut[] = {
-#define X(a)    { pn_DivMod_##a, #a }
-       X(M),
-       X(X_regular),
-       X(X_except),
-       X(res_div),
-       X(res_mod)
 #undef X
 };
 
@@ -948,8 +922,6 @@ static const proj_lookup_t proj_lut[] = {
        { iro_Start,   E(start_lut) },
        { iro_Cond,    E(cond_lut) },
        { iro_Call,    E(call_lut) },
-       { iro_Quot,    E(quot_lut) },
-       { iro_DivMod,  E(divmod_lut) },
        { iro_Div,     E(div_lut) },
        { iro_Mod,     E(mod_lut) },
        { iro_Load,    E(load_lut) },
@@ -988,9 +960,7 @@ static void dump_node_nodeattr(FILE *F, ir_node *n)
                proj_nr = get_Proj_proj(n);
                code    = get_irn_opcode(pred);
 
-               if (code == iro_Cmp)
-                       fprintf(F, "%s ", get_pnc_string(get_Proj_proj(n)));
-               else if (code == iro_Proj && get_irn_opcode(get_Proj_pred(pred)) == iro_Start)
+               if (code == iro_Proj && get_irn_opcode(get_Proj_pred(pred)) == iro_Start)
                        fprintf(F, "Arg %ld ", proj_nr);
                else if (code == iro_Cond && get_irn_mode(get_Cond_selector(pred)) != mode_b)
                        fprintf(F, "%ld ", proj_nr);
@@ -1025,8 +995,11 @@ static void dump_node_nodeattr(FILE *F, ir_node *n)
        case iro_Cast:
                ir_fprintf(F, "(%+F)", get_Cast_type(n));
                break;
+       case iro_Cmp:
+               fprintf(F, "%s ", get_relation_string(get_Cmp_relation(n)));
+               break;
        case iro_Confirm:
-               fprintf(F, "%s ", get_pnc_string(get_Confirm_cmp(n)));
+               fprintf(F, "%s ", get_relation_string(get_Confirm_relation(n)));
                break;
        case iro_CopyB:
                ir_fprintf(F, "(%+F)", get_CopyB_type(n));
@@ -1395,7 +1368,7 @@ static void print_mem_edge_vcgattr(FILE *F, ir_node *from, int to)
                fprintf(F, INTER_MEM_EDGE_ATTR);
 }
 
-/** Print the vcg attributes for the edge from node from to it's to's input */
+/** Print the vcg attributes for the edge from node "from" to its "to"th input */
 static void print_edge_vcgattr(FILE *F, ir_node *from, int to)
 {
        assert(from);
@@ -1620,13 +1593,13 @@ static void dump_whole_block(FILE *F, ir_node *block)
  *  The outermost nodes: blocks and nodes not op_pin_state_pinned, Bad, Unknown. */
 static void dump_block_graph(FILE *F, ir_graph *irg)
 {
-       int i;
+       size_t i, n;
        ir_graph *rem = current_ir_graph;
        ir_node **arr = (ir_node**)ird_get_irg_link(irg);
        current_ir_graph = irg;
 
-       for (i = ARR_LEN(arr) - 1; i >= 0; --i) {
-               ir_node * node = arr[i];
+       for (i = 0, n = ARR_LEN(arr); i < n; ++i) {
+               ir_node *node = arr[i];
                if (is_Block(node)) {
                /* Dumps the block and all the nodes in the block, which are to
                        be found in Block->link. */
@@ -1828,7 +1801,7 @@ static void dump_entity_node(FILE *F, ir_entity *ent)
        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);
@@ -1856,11 +1829,11 @@ static void dump_entity_initializer(FILE *F, const ir_entity *ent)
        (void) ent;
 }
 
-/** Dumps a type or entity and it's edges. */
+/** Dumps a type or entity and its edges. */
 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 */
 
@@ -1876,8 +1849,8 @@ static void dump_type_info(type_or_ent tore, void *env)
                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)) {
@@ -1886,8 +1859,8 @@ static void dump_type_info(type_or_ent tore, void *env)
                                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);
@@ -1909,31 +1882,46 @@ static void dump_type_info(type_or_ent tore, void *env)
                /* 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);
@@ -1941,9 +1929,10 @@ static void dump_type_info(type_or_ent tore, void *env)
                        }
                        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:
@@ -1967,7 +1956,7 @@ static void dump_type_info(type_or_ent tore, void *env)
 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)) {
@@ -1982,8 +1971,10 @@ static void dump_class_hierarchy_node(type_or_ent tore, void *ctx)
                        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;
        }
@@ -1995,7 +1986,8 @@ static void dump_class_hierarchy_node(type_or_ent tore, void *ctx)
                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;
@@ -2032,16 +2024,17 @@ static void dump_out_edge(ir_node *n, void *env)
 
 static void dump_loop_label(FILE *F, ir_loop *loop)
 {
-       fprintf(F, "loop %d, %d sons, %d nodes",
-               get_loop_depth(loop), get_loop_n_sons(loop), get_loop_n_nodes(loop));
+       fprintf(F, "loop %u, %lu sons, %lu nodes",
+               get_loop_depth(loop), (unsigned long) get_loop_n_sons(loop),
+               (unsigned long) get_loop_n_nodes(loop));
 }
 
 static void dump_loop_info(FILE *F, ir_loop *loop)
 {
        fprintf(F, " info1: \"");
-       fprintf(F, " loop nr: %d", get_loop_loop_nr(loop));
+       fprintf(F, " loop nr: %ld", get_loop_loop_nr(loop));
 #ifdef DEBUG_libfirm   /* GL @@@ debug analyses */
-       fprintf(F, "\n The loop was analyzed %d times.", PTR_TO_INT(get_loop_link(loop)));
+       fprintf(F, "\n The loop was analyzed %ld times.", (long int) PTR_TO_INT(get_loop_link(loop)));
 #endif
        fprintf(F, "\"");
 }
@@ -2057,7 +2050,7 @@ static void dump_loop_node(FILE *F, ir_loop *loop)
        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: \"");
@@ -2068,30 +2061,32 @@ static void dump_loop_node_edge(FILE *F, ir_loop *loop, int i)
        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: \"%d\"}\n",
+       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);
        }
@@ -2182,7 +2177,7 @@ void dump_vcg_footer(FILE *F)
 
 static void dump_blocks_as_subgraphs(FILE *out, ir_graph *irg)
 {
-       int i;
+       size_t i;
 
        construct_block_lists(irg);
 
@@ -2191,8 +2186,8 @@ static void dump_blocks_as_subgraphs(FILE *out, ir_graph *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;
@@ -2206,23 +2201,23 @@ static void dump_blocks_as_subgraphs(FILE *out, ir_graph *irg)
  *  The outermost nodes: blocks and nodes not op_pin_state_pinned, Bad, Unknown. */
 static void dump_extblock_graph(FILE *F, ir_graph *irg)
 {
-       int i;
+       size_t i, arr_len;
        ir_graph *rem = current_ir_graph;
        ir_extblk **arr = (ir_extblk**)ird_get_irg_link(irg);
        current_ir_graph = irg;
 
-       for (i = ARR_LEN(arr) - 1; i >= 0; --i) {
+       for (i = 0, arr_len = ARR_LEN(arr); i < arr_len; ++i) {
                ir_extblk *extbb = arr[i];
                ir_node *leader = get_extbb_leader(extbb);
-               int j;
+               size_t j, n_blks;
 
                fprintf(F, "graph: { title: \"");
                PRINT_EXTBBID(leader);
                fprintf(F, "\"  label: \"ExtBB %ld\" status:clustered color:lightgreen\n",
                        get_irn_node_nr(leader));
 
-               for (j = ARR_LEN(extbb->blks) - 1; j >= 0; --j) {
-                       ir_node * node = extbb->blks[j];
+               for (j = 0, n_blks = ARR_LEN(extbb->blks); j < n_blks; ++j) {
+                       ir_node *node = extbb->blks[j];
                        if (is_Block(node)) {
                        /* Dumps the block and all the nodes in the block, which are to
                                be found in Block->link. */
@@ -2249,7 +2244,7 @@ static void dump_extblock_graph(FILE *F, ir_graph *irg)
 
 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)
@@ -2265,8 +2260,8 @@ static void dump_blocks_extbb_grouped(FILE *F, ir_graph *irg)
        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) {
@@ -2420,25 +2415,24 @@ void dump_cfg(FILE *F, ir_graph *irg)
 
 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));
                }
@@ -2464,7 +2458,10 @@ void dump_class_hierarchy(FILE *out)
 
 static void dump_loops_standalone(FILE *F, ir_loop *loop)
 {
-       int i = 0, loop_node_started = 0, son_number = 0, first = 0;
+       size_t i;
+       bool   loop_node_started = false;
+       size_t first      = 0;
+       size_t son_number = 0;
        loop_element le;
        ir_loop *son = NULL;
 
@@ -2485,8 +2482,11 @@ static void dump_loops_standalone(FILE *F, ir_loop *loop)
                                PRINT_LOOPID(loop);
                                fprintf(F, "\" targetname: \"");
                                PRINT_LOOPID(loop);
-                               fprintf(F, "-%d-nodes\" label:\"%d...%d\"}\n", first, first, i-1);
-                               loop_node_started = 0;
+                               fprintf(F, "-%lu-nodes\" label:\"%lu...%lu\"}\n",
+                                               (unsigned long) first,
+                                               (unsigned long) first,
+                                       (unsigned long) i-1);
+                               loop_node_started = false;
                        }
                        dump_loop_son_edge(F, loop, son_number++);
                        dump_loops_standalone(F, son);
@@ -2498,8 +2498,9 @@ static void dump_loops_standalone(FILE *F, ir_loop *loop)
                                /* Start a new node which contains all firm nodes of the current loop */
                                fprintf(F, "node: { title: \"");
                                PRINT_LOOPID(loop);
-                               fprintf(F, "-%d-nodes\" color: lightyellow label: \"", i);
-                               loop_node_started = 1;
+                               fprintf(F, "-%lu-nodes\" color: lightyellow label: \"",
+                                       (unsigned long)i);
+                               loop_node_started = true;
                                first = i;
                        } else
                                fprintf(F, "\n");
@@ -2517,8 +2518,9 @@ static void dump_loops_standalone(FILE *F, ir_loop *loop)
                                /* Start a new node which contains all firm nodes of the current loop */
                                fprintf(F, "node: { title: \"");
                                PRINT_LOOPID(loop);
-                               fprintf(F, "-%d-nodes\" color: lightyellow label: \"", i);
-                               loop_node_started = 1;
+                               fprintf(F, "-%lu-nodes\" color: lightyellow label: \"",
+                                       (unsigned long)i);
+                               loop_node_started = true;
                                first = i;
                        } else
                                fprintf(F, "\n");
@@ -2533,8 +2535,11 @@ static void dump_loops_standalone(FILE *F, ir_loop *loop)
                PRINT_LOOPID(loop);
                fprintf(F, "\" targetname: \"");
                PRINT_LOOPID(loop);
-               fprintf(F, "-%d-nodes\" label:\"%d...%d\"}\n", first, first, i-1);
-               loop_node_started = 0;
+               fprintf(F, "-%lu-nodes\" label:\"%lu...%lu\"}\n",
+                       (unsigned long) first,
+                       (unsigned long) first,
+                       (unsigned long) i-1);
+               loop_node_started = false;
        }
 }
 
@@ -2566,7 +2571,9 @@ void dump_callgraph_loop_tree(FILE *out)
 
 static void collect_nodeloop(FILE *F, ir_loop *loop, eset *loopnodes)
 {
-       int i, son_number = 0, node_number = 0;
+       size_t i;
+       int    son_number = 0;
+       int    node_number = 0;
 
        if (flags & ir_dump_flag_loops)
                dump_loop_node(F, loop);
@@ -2589,7 +2596,8 @@ static void collect_nodeloop(FILE *F, ir_loop *loop, eset *loopnodes)
 static void collect_nodeloop_external_nodes(ir_loop *loop, eset *loopnodes,
                                             eset *extnodes)
 {
-       int i, j, start;
+       size_t i;
+       int j, start;
 
        for (i = 0; i < get_loop_n_elements(loop); i++) {
                loop_element le = get_loop_element(loop, i);
@@ -2619,7 +2627,7 @@ void dump_loop(FILE *F, ir_loop *l)
        ir_node *n, *b;
        char name[50];
 
-       snprintf(name, sizeof(name), "loop_%d", get_loop_loop_nr(l));
+       snprintf(name, sizeof(name), "loop_%ld", get_loop_loop_nr(l));
        dump_vcg_header(F, name, NULL, NULL);
 
        /* collect all nodes to dump */
@@ -2654,7 +2662,7 @@ void dump_loop(FILE *F, ir_loop *l)
                        PRINT_NODEID(b);
                        fprintf(F, "\"  label: \"");
                        dump_node_opcode(F, b);
-                       fprintf(F, " %ld:%d", get_irn_node_nr(b), get_irn_idx(b));
+                       fprintf(F, " %ld:%u", get_irn_node_nr(b), get_irn_idx(b));
                        fprintf(F, "\" status:clustered color:yellow\n");
 
                        /* dump the blocks edges */
@@ -2681,7 +2689,7 @@ void dump_loop(FILE *F, ir_loop *l)
                        PRINT_NODEID(b);
                        fprintf(F, "\"  label: \"");
                        dump_node_opcode(F, b);
-                       fprintf(F, " %ld:%d", get_irn_node_nr(b), get_irn_idx(b));
+                       fprintf(F, " %ld:%u", get_irn_node_nr(b), get_irn_idx(b));
                        fprintf(F, "\" status:clustered color:lightblue\n");
 
                        /* dump the nodes that go into the block */
@@ -2820,8 +2828,7 @@ void dump_ir_graph(ir_graph *graph, const char *suffix)
 
 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);