/*
- * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2011 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
*/
static bool add_implementing_graphs(ir_entity *method)
{
- int i;
- int n_over = get_entity_n_overwrittenby(method);
+ size_t i;
+ size_t n_over = get_entity_n_overwrittenby(method);
ir_graph *graph = get_entity_irg(method);
bool change = false;
*/
static int rta_fill_incremental(void)
{
- int i;
+ size_t i, n;
int n_runs = 0;
bool rerun = true;
/* Need to take care of graphs that are externally
visible or sticky. Pretend that they are called: */
- for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
+ for (i = 0, n = get_irp_n_irgs(); i < n; ++i) {
ir_graph *graph = get_irp_irg(i);
ir_entity *ent = get_irg_entity(graph);
ir_linkage linkage = get_entity_linkage(ent);
- if (entity_is_externally_visible(ent)
- || (linkage & IR_LINKAGE_HIDDEN_USER)) {
+ if ((linkage & IR_LINKAGE_HIDDEN_USER) || entity_is_externally_visible(ent))
pset_new_insert(_live_graphs, graph);
- }
}
while (rerun) {
/**
* Count the number of graphs that we have found to be live.
*/
-static int stats(void)
+static size_t stats(void)
{
- int i;
- int n_live_graphs = 0;
+ size_t i, n;
+ size_t n_live_graphs = 0;
- for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
+ for (i = 0, n = get_irp_n_irgs(); i < n; ++i) {
ir_graph *graph = get_irp_irg(i);
if (rta_is_alive_graph(graph))
*/
static void init_tables(void)
{
- ir_type *tp;
- int i, n;
- ir_graph *irg;
+ ir_graph *irg;
+ ir_segment_t segment;
_live_classes = XMALLOC(pset_new_t);
pset_new_init(_live_classes);
pset_new_insert(_live_graphs, irg);
}
- /* Find static allocated classes */
- tp = get_glob_type();
- n = get_class_n_members(tp);
- for (i = 0; i < n; ++i) {
- ir_type *member_type = get_entity_type(get_class_member(tp, i));
- if (is_Class_type(member_type))
- pset_new_insert(_live_classes, member_type);
- }
+ /* Find static allocated classes in all segments */
+ for (segment = IR_SEGMENT_FIRST; segment <= IR_SEGMENT_LAST; ++segment) {
+ ir_type *tp = get_segment_type(segment);
+ size_t n = get_compound_n_members(tp);
+ size_t i;
- tp = get_tls_type();
- n = get_struct_n_members(tp);
- for (i = 0; i < n; ++i) {
- ir_type *member_type = get_entity_type(get_struct_member(tp, i));
- if (is_Class_type(member_type))
- pset_new_insert(_live_classes, member_type);
+ for (i = 0; i < n; ++i) {
+ ir_type *member_type = get_entity_type(get_compound_member(tp, i));
+ if (is_Class_type(member_type))
+ pset_new_insert(_live_classes, member_type);
+ }
}
-
- /** @FIXME: add constructors/destructors */
}
/*
# ifdef DEBUG_libfirm
{
- int i;
- for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
- irg_verify(get_irp_irg(i), 0);
+ size_t i;
+ for (i = get_irp_n_irgs(); i > 0;) {
+ irg_verify(get_irp_irg(--i), 0);
}
tr_verify();
}
n_runs = rta_fill_incremental();
- DB((dbg, LEVEL_1, "RTA: n_graphs = %i\n", get_irp_n_irgs()));
- DB((dbg, LEVEL_1, "RTA: n_live_graphs = %i\n", stats()));
+ DB((dbg, LEVEL_1, "RTA: n_graphs = %zu\n", get_irp_n_irgs()));
+ DB((dbg, LEVEL_1, "RTA: n_live_graphs = %zu\n", stats()));
DB((dbg, LEVEL_1, "RTA: n_runs = %i\n", n_runs));
# ifdef DEBUG_libfirm
{
- int i;
+ size_t i;
- for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
- irg_verify(get_irp_irg(i), 0);
+ for (i = get_irp_n_irgs(); i > 0;) {
+ irg_verify(get_irp_irg(--i), 0);
}
tr_verify();
}
*/
void rta_delete_dead_graphs(void)
{
- int i, n_dead_irgs, n_graphs = get_irp_n_irgs();
+ size_t i, n_dead_irgs, n_graphs = get_irp_n_irgs();
ir_graph *irg, *next_irg, *dead_irgs;
irp_reserve_resources(irp, IR_RESOURCE_IRG_LINK);
n_dead_irgs = 0;
dead_irgs = NULL;
- for (i = n_graphs - 1; i >= 0; --i) {
- irg = get_irp_irg(i);
+ for (i = n_graphs; i > 0;) {
+ irg = get_irp_irg(--i);
if (! rta_is_alive_graph(irg)) {
set_irg_link(irg, dead_irgs);
remove_irp_irg(irg);
}
- DB((dbg, LEVEL_1, "RTA: dead methods = %i\n", n_dead_irgs));
+ DB((dbg, LEVEL_1, "RTA: dead methods = %zu\n", n_dead_irgs));
irp_free_resources(irp, IR_RESOURCE_IRG_LINK);
}
void rta_cleanup(void)
{
# ifdef DEBUG_libfirm
- int i;
- for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
- irg_verify(get_irp_irg(i), 0);
+ size_t i;
+ for (i = get_irp_n_irgs(); i > 0;) {
+ irg_verify(get_irp_irg(--i), 0);
}
tr_verify();
# endif /* defined DEBUG_libfirm */
/* dump our opinion */
void rta_report(void)
{
- int i, n;
+ size_t i, n;
n = get_irp_n_types();
for (i = 0; i < n; ++i) {