This is the mail archive of the
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: <email@example.com>
On Tue, Dec 11, 2018 at 5:56 AM Jeff Law <firstname.lastname@example.org> 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%]
> 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%]
> 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
You seem to have committed two copies of the changes?