X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fdata_flow_scalar_replace.c;h=ca0e2fa21113e9010ff912bb606c73b38a9e5495;hb=0cc8bfc863da28d3799e9eca1d1765d564b6e573;hp=8d3f0882acae97fc3500bfab4b3a93437a50a154;hpb=4b1138a9eee25ce11adbb7d7162eaa49421e8b51;p=libfirm diff --git a/ir/opt/data_flow_scalar_replace.c b/ir/opt/data_flow_scalar_replace.c index 8d3f0882a..ca0e2fa21 100644 --- a/ir/opt/data_flow_scalar_replace.c +++ b/ir/opt/data_flow_scalar_replace.c @@ -310,7 +310,7 @@ static void link_all_leave_sels(ir_entity *ent, ir_node *sel) * visited more than once causing a ring here, so we use the * node flag to mark linked nodes */ - if (irn_visited(sel)) + if (irn_visited_else_mark(sel)) return; /* @@ -318,8 +318,6 @@ static void link_all_leave_sels(ir_entity *ent, ir_node *sel) */ set_irn_link(sel, get_entity_link(ent)); set_entity_link(ent, sel); - - mark_irn_visited(sel); } /* we need a special address that serves as an address taken marker */ @@ -445,8 +443,7 @@ static path_t *find_path(ir_node *sel, unsigned len) if (!is_Sel(pred)) { /* we found the root */ - - res = xmalloc(sizeof(*res) + (len - 1) * sizeof(res->path)); + res = XMALLOCF(path_t, path, len); res->path_len = len; } else @@ -1144,7 +1141,7 @@ static void sync_mem_edges(env_t *env) { vnum_state++; /* We allocate the memory, that we need for the predecessors of the sync.*/ - in = xmalloc(sizeof(ir_node*) *vnum_state); + in = XMALLOCN(ir_node*, vnum_state); /* The global memory edge is the first predecessor of this sync node.*/ if(val_arr[env->gl_mem_vnum].mem_edge_state == NULL) {