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

--- Comment #18 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #9)
> So in uninit1 we have:
>   if (_6691 != 0)
>     goto <bb 287>; [5.50%]
>   else
>     goto <bb 87>; [94.50%]
> 
>   <bb 287> [local count: 17344687]:
>   goto <bb 88>; [100.00%]
> 
>   <bb 87> [local count: 298013267]:
> 
>   <bb 88> [local count: 315357954]:
>   # const_upper_3854 = PHI <_6687(87), 18446744073709551615(287)>
>   # _870 = PHI <1(87), 0(287)>

[snip]

> But _870 is _6691 == 0 but that relationship is totally missed and there is
> full on jump threading miss in the above IR.

This matches what I mentioned in the mailing list.  If we could notice this
relationship, we could thread over the uninitialized use.

Reply via email to