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

--- Comment #17 from Sebastian Pop <spop at gcc dot gnu.org> ---
Trying to figure out why we FSM jump thread this path: (13, 53) (53, 55)  (55,
64)  (64, 66)  (66, 67)  (67, 68)  (68, 69)  (69, 95)  (95, 94)  (94, 5) (94,
5)

In BB_94 we have this code:

      switch (sprv_49) <default: <L13>, case 1: <L5>, case 2: <L6>, case 3:
<L7>, case 5: <L28>, case 6: <L29>, case 7: <L38>, case 8: <L36>, case 10:
<L37>>

at this point FSM infers that sprv_49 == 1 and we jump to bb_5.  Why?
Following the FSM jump thread path backward from 94 to 13, we have these SSA
definitions:

      # sprv_49 = PHI <8(4), sprv_737(95)>
      # sprv_737 = PHI <sprv_735(66), sprv_735(67), sprv_736(68), sprv_739(92),
10(88)>
      # sprv_736 = PHI <sprv_768(67), sprv_738(90)>
      # sprv_768 = PHI <sprv_764(55), 8(61), sprv_765(58), sprv_766(60)>
      # sprv_764 = PHI <1(13), 7(52)>

So if we are coming from bb_13, we are guaranteed to have a value of 1.

Reply via email to