static INLINE int _value_dominates_intrablock(const ir_node *a, const ir_node *b)
{
/* TODO: ? : can be removed?! */
- sched_timestep_t as = is_Phi(a) ? 0 : sched_get_time_step(a);
- sched_timestep_t bs = is_Phi(b) ? 0 : sched_get_time_step(b);
+ sched_timestep_t as = sched_is_scheduled(a) ? sched_get_time_step(a) : 0;
+ sched_timestep_t bs = sched_is_scheduled(b) ? sched_get_time_step(b) : 0;
return as <= bs;
}
static INLINE int _value_strictly_dominates_intrablock(const ir_node *a, const ir_node *b)
{
/* TODO: ? : can be removed?! */
- sched_timestep_t as = is_Phi(a) ? 0 : sched_get_time_step(a);
- sched_timestep_t bs = is_Phi(b) ? 0 : sched_get_time_step(b);
+ sched_timestep_t as = sched_is_scheduled(a) ? sched_get_time_step(a) : 0;
+ sched_timestep_t bs = sched_is_scheduled(b) ? sched_get_time_step(b) : 0;
return as < bs;
}
*/
static INLINE int _value_dominates(const ir_node *a, const ir_node *b)
{
- const ir_node *block_a = get_block(a);
- const ir_node *block_b = get_block(b);
+ const ir_node *block_a = get_block_const(a);
+ const ir_node *block_b = get_block_const(b);
/*
* a and b are not in the same block,
*/
static INLINE int _value_strictly_dominates(const ir_node *a, const ir_node *b)
{
- const ir_node *block_a = get_block(a);
- const ir_node *block_b = get_block(b);
+ const ir_node *block_a = get_block_const(a);
+ const ir_node *block_b = get_block_const(b);
/*
* a and b are not in the same block,
int b2a = _value_dominates(b, a);
int res = 0;
- stat_ev_ctx_push("beintlive");
-
/*
* Adjust a and b so, that a dominates b if
* a dominates b or vice versa.
const ir_edge_t *edge;
ir_node *bb = get_nodes_block(b);
- stat_ev_dbl("beintlive_ignore", arch_irn_is(lv->birg->main_env->arch_env, a, ignore));
+ //stat_ev_dbl("beintlive_ignore", arch_irn_is(lv->birg->main_env->arch_env, a, ignore));
/*
* If a is live end in b's block it is
}
end:
- stat_ev_ctx_pop("beintlive");
return res;
}