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?