*/
static int check_users_for_reg_pressure(ir_node *iv, iv_env *env)
{
- ir_node *irn, *header;
+ ir_node *irn;
ir_node *have_user = NULL;
ir_node *have_cmp = NULL;
node_entry *e = get_irn_ne(iv, env);
scc *pscc = e->pscc;
- header = e->header;
for (irn = pscc->head; irn != NULL; irn = e->next) {
const ir_edge_t *edge;
*/
static void clear_and_fix(ir_node *irn, void *env)
{
- int *moved = (int*)env;
+ (void)env;
+
set_irn_link(irn, NULL);
if (is_Proj(irn)) {
if (get_nodes_block(irn) != pred_block) {
set_nodes_block(irn, pred_block);
- *moved = 1;
}
}
} /* clear_and_fix */
void remove_phi_cycles(ir_graph *irg)
{
iv_env env;
- int projs_moved;
FIRM_DBG_REGISTER(dbg, "firm.opt.remove_phi");
* the same block as their predecessors.
* This can improve the placement of new nodes.
*/
- projs_moved = 0;
- irg_walk_graph(irg, NULL, clear_and_fix, &projs_moved);
- if (projs_moved)
- set_irg_outs_inconsistent(irg);
+ irg_walk_graph(irg, NULL, clear_and_fix, NULL);
/* we need outs for calculating the post order */
assure_irg_outs(irg);
ir_free_resources(irg, IR_RESOURCE_IRN_LINK);
if (env.replaced) {
- set_irg_outs_inconsistent(irg);
DB((dbg, LEVEL_1, "remove_phi_cycles: %u Cycles removed\n\n", env.replaced));
}
{
iv_env env;
int edges;
- int projs_moved;
FIRM_DBG_REGISTER(dbg, "firm.opt.osr");
env.process_scc = process_scc;
/* Clear all links and move Proj nodes into the
- the same block as it's predecessors.
- This can improve the placement of new nodes.
+ * the same block as its predecessors.
+ * This can improve the placement of new nodes.
*/
- projs_moved = 0;
- irg_walk_graph(irg, NULL, clear_and_fix, &projs_moved);
- if (projs_moved)
- set_irg_outs_inconsistent(irg);
+ irg_walk_graph(irg, NULL, clear_and_fix, NULL);
/* we need dominance */
assure_doms(irg);
lftr(irg, &env);
(void)lftr;
- set_irg_outs_inconsistent(irg);
DB((dbg, LEVEL_1, "Replacements: %u + %u (lftr)\n\n", env.replaced, env.lftr_replaced));
}
ir_free_resources(irg, IR_RESOURCE_IRN_LINK);