/*
- * 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.
*
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)
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.
*/
foreach_out_edge(irn, edge) {
proj = get_edge_src_irn(edge);
- if (get_Proj_proj(proj) == pn)
+ if (is_Proj(proj) && get_Proj_proj(proj) == pn)
return proj;
}