On 5/2/19 6:22 AM, Richard Biener wrote: > On Wed, May 1, 2019 at 7:32 PM Jeff Law <l...@redhat.com> wrote: >> >> >> This fixes pr88797 by avoiding path splitting when we've got a >> candidate, but the PHI feeds a conditional in the join block. ie: >> >> # iftmp.0_11 = PHI <1111(3), 1112(4)> >> [ ... ] >> _14 = iftmp.0_11 > x_17; >> >> >> These are more likely going to be if-conversion candidates and >> if-conversion is generally more profitable than path splitting. >> >> This doesn't feel terribly important to fix for gcc-9, so I'm just >> installing on the trunk. But backporting would be trivial and safe if >> someone feels it's important enough to do so. >> >> This has been bootstrapped and regression tested on a variety of native >> targets, it's also been tested to a lesser degree on the various *-elf >> targets. >> >> Installing on the trunk momentarily. > > IMHO we should get rid of path splitting and try to integrate its transform > with (backward) threading somehow. BUt that wouldn't change the fundamental problem that we don't have a good way to model costs/benefits.
What would be slick would be to create two loops, then do a final selection on which to keep after if-conversion or something along those lines. jeff