- if (!bitset_is_set(allocatable_regs, idx) || !arch_reg_out_is_allocatable(irn, arch_register_for_index(cls, idx))) {
+ const arch_register_req_t *req = arch_get_irn_register_req(irn);
+ const arch_register_t *reg = arch_register_for_index(cls, idx);
+ if (!bitset_is_set(allocatable_regs, idx)
+ || !arch_reg_is_allocatable(req, reg)) {
{
be_pbqp_alloc_env_t *pbqp_alloc_env = (be_pbqp_alloc_env_t*)env;
const arch_register_class_t *cls = pbqp_alloc_env->cls;
{
be_pbqp_alloc_env_t *pbqp_alloc_env = (be_pbqp_alloc_env_t*)env;
const arch_register_class_t *cls = pbqp_alloc_env->cls;
#if TIMER
ir_timer_t *t_ra_pbqp_alloc_create = ir_timer_new();
ir_timer_t *t_ra_pbqp_alloc_solve = ir_timer_new();
#if TIMER
ir_timer_t *t_ra_pbqp_alloc_create = ir_timer_new();
ir_timer_t *t_ra_pbqp_alloc_solve = ir_timer_new();
/* set costs */
for (row = 0, col = 0; row < colors_n; row++, col++)
pbqp_matrix_set(ife_matrix, row, col, INF_COSTS);
/* set costs */
for (row = 0, col = 0; row < colors_n; row++, col++)
pbqp_matrix_set(ife_matrix, row, col, INF_COSTS);
- plist_element_t *elements;
- foreach_plist(pbqp_alloc_env.rpeo, elements) {
- pbqp_node_t *node = elements->data;
- printf(" %d(%lu);", node->index, get_idx_irn(irg, node->index)->node_nr);
+ {
+ plist_element_t *elements;
+ foreach_plist(pbqp_alloc_env.rpeo, elements) {
+ pbqp_node_t *node = elements->data;
+ printf(" %d(%ld);", node->index, get_idx_irn(irg, node->index)->node_nr);
+ }
+ printf("\n");
void be_init_pbqp_coloring(void)
{
lc_opt_entry_t *be_grp = lc_opt_get_grp(firm_opt_get_root(), "be");
void be_init_pbqp_coloring(void)
{
lc_opt_entry_t *be_grp = lc_opt_get_grp(firm_opt_get_root(), "be");