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

Reply via email to