#include "irtools.h"
#include "irpass.h"
-DEBUG_ONLY(static firm_dbg_module_t *dbg);
+DEBUG_ONLY(static firm_dbg_module_t *dbg;)
/**
* Walker: adds Call operations to a head's link list.
void gc_irgs(size_t n_keep, ir_entity ** keep_arr)
{
void * MARK = &MARK; /* @@@ gefaehrlich!!! Aber wir markieren hoechstens zu viele ... */
- int i;
+ size_t i, n;
FIRM_DBG_REGISTER(dbg, "firm.opt.cgopt");
DB((dbg, LEVEL_1, " method %+F kept alive.\n", marked[idx]));
}
- for (i = 0; i < ARR_LEN(marked); ++i) {
- ir_graph *irg = get_entity_irg(marked[i]);
+ for (idx = 0; idx < ARR_LEN(marked); ++idx) {
+ ir_graph *irg = get_entity_irg(marked[idx]);
ir_node *node;
if (irg == NULL)
/* iterate calls */
for (node = (ir_node*)get_irn_link(node); node != NULL;
node = (ir_node*)get_irn_link(node)) {
- int i;
+ size_t i;
assert(is_Call(node));
- for (i = get_Call_n_callees(node) - 1; i >= 0; --i) {
- ir_entity *ent = get_Call_callee(node, i);
+ for (i = get_Call_n_callees(node); i > 0;) {
+ ir_entity *ent = get_Call_callee(node, --i);
if (get_entity_irg(ent) && get_entity_link(ent) != MARK) {
set_entity_link(ent, MARK);
}
/* clean */
- for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
+ for (i = 0, n = get_irp_n_irgs(); i < n; ++i) {
ir_graph *irg = get_irp_irg(i);
ir_entity *ent = get_irg_entity(irg);