if libfirm_debug is set. */
void set_loop_link (ir_loop *loop, void *link) {
assert(loop && loop->kind == k_ir_loop);
-#ifdef DEBUG_libfirm
loop->link = link;
-#endif
}
void *get_loop_link (const ir_loop *loop) {
assert(loop && loop->kind == k_ir_loop);
-#ifdef DEBUG_libfirm
return loop->link;
-#else
- return NULL;
-#endif
}
int (is_ir_loop)(const void *thing) {
static INLINE void
init_node (ir_node *n, void *env) {
+ (void) env;
set_irn_link (n, new_scc_info());
clear_backedges(n);
}
*/
}
+#ifdef INTERPROCEDURAL_VIEW
static INLINE void
init_ip_scc (void) {
init_scc_common();
cg_walk (link_to_reg_end, NULL, NULL);
#endif
}
+#endif
/* Condition for breaking the recursion. */
static int is_outermost_Start(ir_node *n) {
}
+#ifdef INTERPROCEDURAL_VIEW
int construct_ip_backedges (void) {
ir_graph *rem = current_ir_graph;
int rem_ipv = get_interprocedural_view();
current_ir_graph = rem;
set_interprocedural_view(rem_ipv);
}
+#endif
static void reset_backedges(ir_node *n) {
if (is_possible_loop_head(n)) {
+#ifdef INTERPROCEDURAL_VIEW
int rem = get_interprocedural_view();
set_interprocedural_view(1);
set_interprocedural_view(1);
clear_backedges(n);
set_interprocedural_view(rem);
+#else
+ clear_backedges(n);
+#endif
}
}
*/
static void loop_reset_node(ir_node *n, void *env) {
+ (void) env;
set_irn_loop(n, NULL);
reset_backedges(n);
}
void free_all_loop_information (void) {
int i;
+#ifdef INTERPROCEDURAL_VIEW
int rem = get_interprocedural_view();
set_interprocedural_view(1); /* To visit all filter nodes */
+#endif
for (i = 0; i < get_irp_n_irgs(); i++) {
free_loop_information(get_irp_irg(i));
}
+#ifdef INTERPROCEDURAL_VIEW
set_interprocedural_view(rem);
+#endif
}