#include "config.h"
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#endif
+#include "iroptimize.h"
#include "scalar_replace.h"
#include "irflag_t.h"
#include "irouts.h"
set_insert(pathes, key, PATH_SIZE(key), path_hash(key));
SET_VNUM(sel, key->vnum);
- ARR_EXTO(ir_mode *, *modes, (key->vnum + 15) & ~15);
+ ARR_EXTO(ir_mode *, *modes, (int)((key->vnum + 15) & ~15));
(*modes)[key->vnum] = get_type_mode(get_entity_type(get_Sel_entity(sel)));
val = new_d_Conv(get_irn_dbg_info(node), val, mode);
turn_into_tuple(node, pn_Load_max);
- set_Tuple_pred(node, pn_Load_M, mem);
- set_Tuple_pred(node, pn_Load_res, val);
- set_Tuple_pred(node, pn_Load_X_except, new_Bad());
+ set_Tuple_pred(node, pn_Load_M, mem);
+ set_Tuple_pred(node, pn_Load_res, val);
+ set_Tuple_pred(node, pn_Load_X_regular, new_r_Jmp(current_ir_graph, block));
+ set_Tuple_pred(node, pn_Load_X_except, new_Bad());
} else {
l = obstack_alloc(&env->obst, sizeof(*l));
l->node = node;
value_arr[vnum] = val;
mem = get_Store_mem(node);
+ block = get_nodes_block(node);
turn_into_tuple(node, pn_Store_max);
- set_Tuple_pred(node, pn_Store_M, mem);
- set_Tuple_pred(node, pn_Store_X_except, new_Bad());
+ set_Tuple_pred(node, pn_Store_M, mem);
+ set_Tuple_pred(node, pn_Store_X_regular, new_r_Jmp(current_ir_graph, block));
+ set_Tuple_pred(node, pn_Store_X_except, new_Bad());
} else if (op == op_Phi && get_irn_mode(node) == mode_M) {
/*
* found a memory Phi: Here, we must create new Phi nodes
val = new_Unknown(env->modes[l->vnum]);
}
- mem = get_Load_mem(load);
/* Beware: A Load can contain a hidden conversion in Firm.
Handle this here. */
mode = get_Load_mode(load);
if (mode != get_irn_mode(val))
val = new_d_Conv(get_irn_dbg_info(load), val, mode);
+ mem = get_Load_mem(load);
+
turn_into_tuple(load, pn_Load_max);
- set_Tuple_pred(load, pn_Load_M, mem);
- set_Tuple_pred(load, pn_Load_res, val);
- set_Tuple_pred(load, pn_Load_X_except, new_Bad());
+ set_Tuple_pred(load, pn_Load_M, mem);
+ set_Tuple_pred(load, pn_Load_res, val);
+ set_Tuple_pred(load, pn_Load_X_regular, new_r_Jmp(current_ir_graph, block));
+ set_Tuple_pred(load, pn_Load_X_except, new_Bad());
}
}