if (mode == mode_T)
return 1;
- if (arch_get_register_req_out(irn)->type & arch_register_req_type_ignore)
+ if (arch_get_irn_register_req(irn)->type & arch_register_req_type_ignore)
return 0;
return 1;
if (fc == NULL) {
irn_cost_pair* costs;
- int i;
ir_node* block = get_nodes_block(irn);
fc = OALLOCF(&inst->obst, flag_and_cost, costs, arity);
for (i = 0; i < arity; ++i) {
ir_node* pred = get_irn_n(irn, i);
- int cost;
if (is_Phi(irn) || get_irn_mode(pred) == mode_M || is_Block(pred)) {
cost = 0;
mode = get_irn_mode(op);
if (mode == mode_M)
continue;
+ if (arch_get_irn_flags(op) & arch_irn_flags_not_scheduled)
+ continue;
if (mode != mode_T && arch_irn_is_ignore(op))
continue;
cost = MAX(fc->costs[i].cost + n_op_res, cost);
be_list_sched_graph(irg, &normal_selector);
}
-BE_REGISTER_MODULE_CONSTRUCTOR(be_init_sched_normal);
+BE_REGISTER_MODULE_CONSTRUCTOR(be_init_sched_normal)
void be_init_sched_normal(void)
{
be_register_scheduler("normal", sched_normal);