This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [committed] [PR tree-optimization/80520] Throttle path splitting slightly.
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Jeff Law <law at redhat dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 11 Dec 2018 09:29:50 +0100
- Subject: Re: [committed] [PR tree-optimization/80520] Throttle path splitting slightly.
- References: <2bac4239-d7ef-7555-a362-cfddc6bde931@redhat.com>
On Tue, Dec 11, 2018 at 5:56 AM Jeff Law <law@redhat.com> wrote:
>
>
>
> This is a pre-req for fixing 80520. Essentially the goal here is to
> keep the key code in this form:
>
> <bb 3>
> [ ... ]
> if (_20 != 0)
> goto <bb 5>; [50.00%]
> else
> goto <bb 4>; [50.00%]
>
> <bb 4> [local count: 531502203]:
> _18 = _25 ^ 2567483615;
>
> <bb 5> [local count: 1063004407]:
> # prephitmp_49 = PHI <_25(3), _18(4)>
> _2 = (void *) ivtmp.8_30;
> MEM[base: _2, offset: 0B] = prephitmp_49;
> ivtmp.8_29 = ivtmp.8_30 + 8;
> if (ivtmp.8_29 != _6)
> goto <bb 3>; [98.99%]
> else
> goto <bb 6>; [1.01%]
>
>
> Split-paths wants to duplicate bb5 into bb4. It's just not all that
> profitable to do so. We can get ever-so-slightly better code on a
> target like microblaze and perhaps others with delay slots and no
> conditional move/execution capabilities. But that seems more like
> something we should be tackling at the RTL level.
>
> To finish fixing 80520 we will need to improve the RTL if-conversion
> where we presumably can cost things and make a good choice between the
> branchy code we have vs straightline code with a conditional move or
> conditional execution. I'm not tackling that yet.
>
> Note that split-path-5 has the same basic structure. A half-diamond
> with a single statement in the middle block that should be trivially
> if-convertable if profitable. So I adjusted that testcase.
>
> Bootstrapped and regression tested on x86_64. Installing on the trunk
> momentarily.
You seem to have committed two copies of the changes?
Richard.