On Fri, 14 Sep 2012, Richard Guenther wrote:

> As for the equiv sets - yes, that's known.  I wanted to investigate
> at some point what happens if we instead record the SSA name we
> registered the assert for (thus look up a chain of lattice values
> instead of recording all relevant entries in a bitmap).  ISTR there
> were some correctness issues, but if we restrict the chaining maybe
> we cat get a good compromise here.

Actually the only users are compare_name_with_value and
compare_names.  The idea with a simple chain, thus

struct value_range_d
{
...
  /* SSA name whose value range is equivalent to this one.  */
  tree equiv;
};

is only non-trivial for intersections (thus PHI nodes).  Still
there the equivalent range is the nearest dominating one from
the chains of all PHI arguments.  I can only think of the way
we do iteration that would mess up the chains (but not sure
if we need to require them to be in dom order).

Probably best to try implement the above alongside the bitmaps
and compare the results in compare_name_with_value / compare_names.

Richard.

Reply via email to