This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Question on find_def_preds in tree-ssa-uninit.c
- From: "Bin.Cheng" <amker dot cheng at gmail dot com>
- To: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Wed, 14 Nov 2012 18:17:41 +0800
- Subject: Question on find_def_preds in tree-ssa-uninit.c
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.