/*
- * Copyrigth (C) 1995-2007 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
* Called from a walker.
*/
static INLINE void
-init_node (ir_node *n, void *env) {
+init_node (ir_node *n, void *env)
+{
+ (void) env;
if (is_Block(n))
set_irn_link (n, new_scc_info());
clear_backedges(n);
irg_walk_graph(irg, init_node, NULL, NULL);
}
+#ifdef INTERPROCEDURAL_VIEW
/**
* Initializes the scc algorithm for the interprocedural case.
*/
cg_walk (link_to_reg_end, NULL, NULL);
#endif
}
+#endif
/**
* Condition for breaking the recursion: n is the block
some_outof_loop = 1;
} else {
if (get_irn_uplink(pred) < get_irn_uplink(root)) {
- DDMN(pred); DDMN(root);
assert(get_irn_uplink(pred) >= get_irn_uplink(root));
}
some_in_loop = 1;
some_outof_loop = 1; //printf(" some out of loop ");
} else {
if(get_irn_uplink(pred) < get_irn_uplink(root)) {
- DDMN(pred); DDMN(root);
assert(get_irn_uplink(pred) >= get_irn_uplink(root));
}
some_in_loop = 1;
return max_loop_depth;
}
-
+#ifdef INTERPROCEDURAL_VIEW
int construct_ip_cf_backedges (void) {
ir_graph *rem = current_ir_graph;
int rem_ipv = get_interprocedural_view();
set_interprocedural_view(rem_ipv);
return max_loop_depth;
}
+#endif
/**
* Clear the intra- and the interprocedural
* backedge information pf a block.
*/
static void reset_backedges(ir_node *block) {
- int rem = get_interprocedural_view();
+ int rem;
assert(is_Block(block));
+#ifdef INTERPROCEDURAL_VIEW
+ rem = get_interprocedural_view();
set_interprocedural_view(1);
clear_backedges(block);
set_interprocedural_view(0);
clear_backedges(block);
set_interprocedural_view(rem);
+#else
+ (void) rem;
+ clear_backedges(block);
+#endif
}
/**
void free_all_cfloop_information (void) {
int i;
+#ifdef INTERPROCEDURAL_VIEW
int rem = get_interprocedural_view();
set_interprocedural_view(1); /* To visit all filter nodes */
+#endif
for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
free_cfloop_information(get_irp_irg(i));
}
+#ifdef INTERPROCEDURAL_VIEW
set_interprocedural_view(rem);
+#endif
}