https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70159
--- Comment #10 from rguenther at suse dot de <rguenther at suse dot de> --- On Thu, 10 Mar 2016, spop at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70159 > > --- Comment #9 from Sebastian Pop <spop at gcc dot gnu.org> --- > Created attachment 37927 > --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37927&action=edit > patch for hoisting expressions > > Updated the patch from PR23286 to hoist the redundant expressions: > > <bb 2>: > inv_4 = 1.0e+0 / d_3(D); > _18 = min_5(D) - a_6(D); > _19 = _18 / inv_4; > _20 = max_9(D) - a_6(D); > _21 = _20 / inv_4; > if (inv_4 >= 0.0) > goto <bb 4>; > else > goto <bb 3>; > > <bb 3>: > > <bb 4>: > # tmin_1 = PHI <_19(2), _21(3)> > # tmax_2 = PHI <_21(2), _19(3)> > _16 = tmin_1 + tmax_2; > return _16; > > The attached patch does not pass make check and causes some infinite > recursion. Yes, the patch has some issues still. As for every stage1 I plan to try picking it up again ... I notice from the above output that it doesn't see the CSE opportunity but inserts both expressions - it shouldn't do that, so there's something "new wrong" with the patch (or your update to it)