/* option variable */
static ilpsched_options_t ilp_opts = {
70, /* if we have more than 70 nodes: use alive nodes constraint */
- 300, /* 300 sec per block time limit */
+ 120, /* 300 sec per block time limit */
"" /* no log file */
};
be_ilpsched_irn_t *block_node = get_ilpsched_irn(env, block);
ilpsched_block_attr_t *ba = get_ilpsched_block_attr(block_node);
+ ir_fprintf(stderr, "visiting %+F\n", block);
plist_free(ba->root_nodes);
ba->root_nodes = NULL;
}
}
}
- glob_heights = heights_new(env->irg);
+ glob_heights = env->height;
/* sort nodes ascending by scheduling time step */
qsort(sched_nodes, ARR_LEN(sched_nodes), sizeof(sched_nodes[0]), cmp_ilpsched_irn);
- heights_free(glob_heights);
}
/* make all Phis ready and remember the single cf op */
FILE *logfile = NULL;
lpp_t *lpp = NULL;
struct obstack var_obst;
+ char name[1024];
DBG((env->dbg, 255, "\n\n\n=========================================\n"));
DBG((env->dbg, 255, " ILP Scheduling for %+F\n", block));
estimated_n_var, estimated_n_cst));
/* set up the LPP object */
+ snprintf(name, sizeof(name), "ilp scheduling IRG %s", get_entity_ld_name(get_irg_entity(env->irg)));
+
lpp = new_lpp_userdef(
- "be ilp scheduling",
+ (const char *)name,
lpp_minimize,
estimated_n_cst + 1, /* num vars */
estimated_n_cst + 20, /* num cst */
/* We refine the {ASAP(n), ALAP(n)} interval and fix the time steps for Projs and Keeps */
irg_walk_in_or_dep_blkwise_graph(env.irg, NULL, refine_asap_alap_times, &env);
- /* we don't need this information any longer */
- heights_free(env.height);
-
/* perform ILP scheduling */
irg_block_walk_graph(env.irg, clear_unwanted_data, create_ilp, &env);
/* free all allocated object */
phase_free(&env.ph);
+ heights_free(env.height);
/* notify backend */
be_ilp_sched_finish_irg_ilp_schedule(sel, birg->irg, env.irg_env);