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

--- Comment #11 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
(In reply to Andrew Macleod from comment #10)
> I was thinking less about phis and more that its a "return" instead of an
> "if" ending the block preventing the threader from doing anything.
> 
>   _3 = i_6 != 0;
>   return _3;
> 
> Ie, so if a return uses a condition, we could act like its a branch.. if
> that were viewed as
>   if (_3)
>     return 1
>   else
>     return 0
> the threader would do what we are looking for?
> 
> I don't know if that would be easy or hard or even worthwhile, but I seem to
> vaguely recall another situation a few months ago that was similar... with a
> block that ended in a return not triggering threads thru a PHI in the block
> that could have been helpful.

I don't know.  I thought return's were special.  Can there be more than one per
function?

Reply via email to