On Thu, 16 Jun 2016, Jan Hubicka wrote:
> > On Thu, 9 Jun 2016, Alexander Monakov wrote:
> + FOR_EACH_VARIABLE (pv)
[snip]
> + i = pv->order;
> + gcc_assert (nodes[i].kind == ORDER_UNDEFINED);
> + nodes[i].kind = pv->definition ? ORDER_VAR : ORDER_VAR_UNDEF;
> + nodes[i].u.v = pv;
>
> order for undefined variables is not computed, so it will be 0. Doesn't
> think overwrite existing entries of nodes array?
Hm, I've tried the following testcase:
extern int a, b;
int f()
{
return a+b;
}
and in the above loop I see pv->order == 2 on the first iteration,
pv->order == 1 on the second. Under what circumstances wouldn't
order be computed?
Thanks.
Alexander