From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 106637 invoked by alias); 11 Dec 2018 08:30:14 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 106383 invoked by uid 89); 11 Dec 2018 08:30:06 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=HX-Envelope-From:sk:richard X-HELO: mail-lf1-f50.google.com Received: from mail-lf1-f50.google.com (HELO mail-lf1-f50.google.com) (209.85.167.50) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 11 Dec 2018 08:30:05 +0000 Received: by mail-lf1-f50.google.com with SMTP id l10so10101918lfh.9 for ; Tue, 11 Dec 2018 00:30:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Ruae3X8vQt0N6D5EuoNHJgAZyj0qvd7gK+bpsehPxyU=; b=BsB2W8BHeJn0PUiyKHs58/MEcDARAutjG3kqopMlOEzrSFtrDl33XhdJOLzRbQYGz/ /FJWE0pdtMfTb0gi7lRUrvBXaYmhyjx7EQPd8m10iZTrhk+BxaMppkGHyAL/75cLlzRO EtfS2WSueiJG4SGqYtUY//dxlCEAPr9ixHzKFA2P3zh/lpFR1TzPlWFzEHp8r0wPBjOF Fq/S7hl36H+iihxilQLDC7JWV9pq9rkgyVV8GPftc5gvLpjQRTdI4oh/XceLppvjQe03 VhI6gbMAYWoPhfxJoS2yELFMk2i1h0hxuvHqaLnKWnve70m4IwrYFAqOgSz0/TDd7Kar XIJA== MIME-Version: 1.0 References: <2bac4239-d7ef-7555-a362-cfddc6bde931@redhat.com> In-Reply-To: <2bac4239-d7ef-7555-a362-cfddc6bde931@redhat.com> From: Richard Biener Date: Tue, 11 Dec 2018 08:30:00 -0000 Message-ID: Subject: Re: [committed] [PR tree-optimization/80520] Throttle path splitting slightly. To: Jeff Law Cc: GCC Patches Content-Type: text/plain; charset="UTF-8" X-IsSubscribed: yes X-SW-Source: 2018-12/txt/msg00631.txt.bz2 On Tue, Dec 11, 2018 at 5:56 AM Jeff Law wrote: > > > > This is a pre-req for fixing 80520. Essentially the goal here is to > keep the key code in this form: > > > [ ... ] > if (_20 != 0) > goto ; [50.00%] > else > goto ; [50.00%] > > [local count: 531502203]: > _18 = _25 ^ 2567483615; > > [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 ; [98.99%] > else > goto ; [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.