https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85598
--- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to rguent...@suse.de from comment #13) > Note that dom after vrp1 should be able to adjust the value-ranges given > it uses EVRP to track ranges... why doesn't that work? >From what I see, dom never calls record_ranges_from_phis, but even if it would, it wouldn't handle the relevant case here, which is to interset the range of the SSA_NAME phi arg with the edge condition (as if there was an assertion registered). I think I'm able to implement this in forwprop using with using the get_range_info (const_tree, value_range_base &), value_range::{deep_copy,intersect,union} APIs, or defer to somebody familiar with dom and evrp range analyzer to do it in dom (Jeff, Aldy).