return rec_get_accessed_path(ptr, 0);
}
-
/**
* optimize a Load
*/
if (get_irn_op(ptr) == op_Sel) {
ir_node *mem = get_Sel_mem(ptr);
- if (get_irn_op(mem) == op_Alloc) {
+ if (get_irn_op(skip_Proj(mem)) == op_Alloc) {
/* ok, check the types */
entity *ent = get_Sel_entity(ptr);
type *s_type = get_entity_type(ent);
*/
if ((!pred_info->projs[pn_Store_X_except] && !info->projs[pn_Load_X_except]) ||
get_nodes_block(load) == get_nodes_block(pred)) {
- DBG_OPT_RAW(load, pred);
- exchange( info->projs[pn_Load_res], get_Store_value(pred) );
+ ir_node *value = get_Store_value(pred);
+
+ DBG_OPT_RAW(load, value);
+ exchange(info->projs[pn_Load_res], value);
if (info->projs[pn_Load_M])
exchange(info->projs[pn_Load_M], mem);