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).