https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106630
--- Comment #5 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #4) > > It looks like DOM2, as a side-effect of using the ranger to do cprop, is > > exporting a global range for a_9 > > Where a_9 has a global range of [0,0]. > > Why didn't DOM do a constant prop here since the only value for a_9 is 0 ... The only uses of a_9 are in PHIs: <bb 5> [local count: 4724464]: # a_9 = PHI <a_13(4), 0(3)> goto <bb 8>; [100.00%] ... ... <bb 8> [local count: 42949672]: # a_23 = PHI <a_14(7), a_9(5)> goto <bb 6>; [100.00%] Perhaps DOM doesn't cprop into PHIs? ....actually: static void cprop_into_successor_phis (basic_block bb, class const_and_copies *const_and_copies) But that only works with DOM's internal const_and_copies tables, not with ranger (or originally with the evrp engine).