/*
- * Copyright (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.
*
*/
static int sched_edge_hook(FILE *F, ir_node *irn)
{
- if(sched_is_scheduled(irn) && sched_has_prev(irn)) {
+ if (is_Proj(irn))
+ return 1;
+ if (sched_is_scheduled(irn) && sched_has_prev(irn)) {
ir_node *prev = sched_prev(irn);
fprintf(F, "edge:{sourcename:\"");
PRINT_NODEID(irn);
DUMP_NODE_EDGE_FUNC old = get_dump_node_edge_hook();
dump_consts_local(0);
- set_dump_node_edge_hook(sched_edge_hook);
+ if (have_sched_info(irg))
+ set_dump_node_edge_hook(sched_edge_hook);
dump_ir_block_graph(irg, suffix);
set_dump_node_edge_hook(old);
}
DUMP_NODE_EDGE_FUNC old = get_dump_node_edge_hook();
dump_consts_local(0);
- set_dump_node_edge_hook(sched_edge_hook);
+ if (have_sched_info(irg))
+ set_dump_node_edge_hook(sched_edge_hook);
dump_ir_extblock_graph(irg, suffix);
set_dump_node_edge_hook(old);
}
static void collect_phis(ir_node *irn, void *data)
{
- if(is_Phi(irn)) {
- ir_node *bl = get_nodes_block(irn);
- set_irn_link(irn, get_irn_link(bl));
- set_irn_link(bl, irn);
- }
+ (void) data;
+ if(is_Phi(irn)) {
+ ir_node *bl = get_nodes_block(irn);
+ set_irn_link(irn, get_irn_link(bl));
+ set_irn_link(bl, irn);
+ }
}
void be_clear_links(ir_graph *irg)
{
- set_using_irn_link(irg);
+ ir_reserve_resources(irg, IR_RESOURCE_IRN_LINK);
irg_walk_graph(irg, firm_clear_link, NULL, NULL);
- clear_using_irn_link(irg);
+ ir_free_resources(irg, IR_RESOURCE_IRN_LINK);
}
void be_collect_phis(ir_graph *irg)
irg_walk_graph(irg, collect_phis, NULL, NULL);
}
-static void count_num_reachable_nodes(ir_node *irn, void *env) {
+static void count_num_reachable_nodes(ir_node *irn, void *env)
+{
int *num = env;
(*num)++;
+ (void) irn;
}
unsigned get_num_reachable_nodes(ir_graph *irg) {
return num;
}
-/**
- * Sets all node inputs to BAD node.
- */
-void be_kill_node(ir_node *irn) {
- ir_graph *irg = get_irn_irg(irn);
-
- assert(!is_Bad(irn));
-
-#ifdef DEBUG_libfirm
- {
- int i, first;
- first = 0 - ! is_Block(irn);
-
- for (i = get_irn_arity(irn) - 1; i >= first; --i) {
- set_irn_n(irn, i, get_irg_bad(irg));
- }
- }
-#endif
-
- edges_node_deleted(irn, irg);
-}
-
/**
* Gets the Proj with number pn from irn.
*/