/* the other defs can't be marked for cases where a user of the original
* value is in the same block as the alternative definition.
* In this case we mustn't use the alternative definition.
- * So we keep a flag that indicated wether we walked at least 1 block
+ * So we keep a flag that indicated whether we walked at least 1 block
* away and may use the alternative definition */
if (block == ssa_second_def_block && !first) {
return ssa_second_def;
copy = get_Phi_pred(node, j);
/* we might have to evaluate a Phi-cascade */
if (get_irn_visited(copy) >= env->visited_nr) {
- copy = get_irn_link(copy);
+ copy = (ir_node*)get_irn_link(copy);
}
} else {
copy = exact_copy(node);
continue;
if (get_irn_visited(pred) >= env->visited_nr) {
- new_pred = get_irn_link(pred);
+ new_pred = (ir_node*)get_irn_link(pred);
} else {
new_pred = copy_and_fix_node(env, block, copy_block, j, pred);
}
* recursive find_phi_with_const() call */
assert(get_irn_visited(copy) <= env->visited_nr);
if (get_irn_visited(copy) >= env->visited_nr) {
- ir_node *prev_copy = get_irn_link(copy);
+ ir_node *prev_copy = (ir_node*)get_irn_link(copy);
if (prev_copy != NULL)
set_irn_link(node, prev_copy);
}
DB((dbg, LEVEL_2, ">> Fixing users of %+F\n", node));
- copy_node = get_irn_link(node);
+ copy_node = (ir_node*)get_irn_link(node);
construct_ssa(block, node, copy_block, copy_node);
}
}
if (is_Proj(value)) {
ir_node *left;
ir_node *right;
- int pnc;
+ pn_Cmp pnc;
ir_node *cmp = get_Proj_pred(value);
if (!is_Cmp(cmp))
return NULL;
left = get_Cmp_left(cmp);
right = get_Cmp_right(cmp);
- pnc = get_Proj_proj(value);
+ pnc = get_Proj_pn_cmp(value);
/* we assume that the constant is on the right side, swap left/right
* if needed */
static void thread_jumps(ir_node* block, void* data)
{
jumpthreading_env_t env;
- int *changed = data;
+ int *changed = (int*)data;
ir_node *selector;
ir_node *projx;
ir_node *cond;
const ir_edge_t *edge, *next;
ir_graph *irg;
ir_node *bad;
- size_t cnst_pos;
+ int cnst_pos;
if (get_Block_n_cfgpreds(block) != 1)
return;
ir_node *left = get_Cmp_left(cmp);
ir_node *right = get_Cmp_right(cmp);
if (is_Const(left) && is_Const(right)) {
- int pnc = get_Proj_proj(selector);
+ pn_Cmp pnc = get_Proj_pn_cmp(selector);
ir_tarval *tv_left = get_Const_tarval(left);
ir_tarval *tv_right = get_Const_tarval(right);
* constant or the comparison could not be evaluated.
* Try with VRP information now.
*/
- int pnc = get_Proj_proj(selector);
+ pn_Cmp pnc = get_Proj_pn_cmp(selector);
selector_evaluated = eval_cmp_vrp(pnc, left, right);
}