https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85598

--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So, evrp_range_analyzer.enter (bb); even calls record_ranges_from_phis, but
that does nothing here, as only one of the preds is BB_VISITED and the other is
not when this is called, so we end up with has_unvisited_preds and so
extract_range_from_phi_node isn't called.  Could we just drop the
has_unvisited_preds stuff and instead in extract_range_from_phi_node for the
edges from non-visited bbs solely use get_range_info?
Plus, we'd need for both the visited and unvisited add the range intersection
with the guarding condition of the edge if it uses the same SSA_NAME (or
perhaps later extend it to be as smart as tree-vrp.c assertion handling is, it
handles even some more complex cases).  Or is it that in evrp code we never
want to look at recorded SSA_NAME_RANGE_INFO?

And lastly, even if all this is done, I believe dom just computes ranges, but
doesn't every adjust (narrow) recorded SSA_NAME_RANGE_INFO if it computes
something more precise for some SSA_NAME.  Can it do that?

Reply via email to