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.