Hi, In function find_def_preds from tree-ssa-uninit.c there is following code:
prev_nc = num_chains; compute_control_dep_chain (cd_root, opnd_edge->src, dep_chains, &num_chains, &cur_chain); /* Free individual chain */ VEC_free (edge, heap, cur_chain); cur_chain = 0; /* Now update the newly added chains with the phi operand edge: */ if (EDGE_COUNT (opnd_edge->src->succs) > 1) { if (prev_nc == num_chains && num_chains < MAX_NUM_CHAINS) num_chains++; for (j = prev_nc; j < num_chains; j++) { VEC_safe_push (edge, heap, dep_chains[j], opnd_edge); } } If condition "prev_nc == num_chains", it means we have no control dependent chain computed by compute_control_dep_chain this round. The question is why we still apeend opnd_edge to the PREV_NCth chain? Is it wrong or I missed something important. Thanks -- Best Regards.