From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 124560 invoked by alias); 15 Nov 2016 04:10:26 -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 124528 invoked by uid 89); 15 Nov 2016 04:10:25 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-4.5 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=unlucky, rtx_cost, H*r:8.13.8, you! X-HELO: gate.crashing.org Received: from gate.crashing.org (HELO gate.crashing.org) (63.228.1.57) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 15 Nov 2016 04:10:23 +0000 Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.13.8) with ESMTP id uAF4AKNt017421; Mon, 14 Nov 2016 22:10:20 -0600 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id uAF4AIoR017419; Mon, 14 Nov 2016 22:10:18 -0600 Date: Tue, 15 Nov 2016 04:10:00 -0000 From: Segher Boessenkool To: Michael Matz Cc: gcc-patches@gcc.gnu.org Subject: Re: Fix PR77881: combine improvement Message-ID: <20161115041017.GA12325@gate.crashing.org> References: <20161112114815.GA21031@gate.crashing.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-IsSubscribed: yes X-SW-Source: 2016-11/txt/msg01398.txt.bz2 On Mon, Nov 14, 2016 at 05:56:49AM +0100, Michael Matz wrote: > With this patch there are now no regressions on x86-64-linux (bootstrapped > with all languages+ada). Okay for trunk? I build cross-compilers for this for a whole bunch of archs, and built Linux with that, to see what effect this has. This is the code size generated before and after the patch; "0" means something failed to build (either the compiler, for the mips targets and tilegx after the patch, or Linux): before after alpha 5410232 5410264 arc 3624274 3624338 arm 0 0 arm64 9086689 9082593 blackfin 1963170 1963226 c6x 2086879 2086911 cris 2186162 2186130 frv 3623264 3623264 h8300 1052810 1052850 i386 9723021 9721407 ia64 15243432 15244136 m32r 3415580 3415580 m68k 3221030 3221070 microblaze 0 0 mips 0 0 mips64 0 0 mn10300 2349253 2349237 nios2 3172110 3172182 parisc 8241147 8241147 parisc64 7197909 7196853 powerpc 8396871 8396863 powerpc64 14908442 14907866 s390 12579952 12579568 sh 2819700 2819716 shnommu 1360512 1360512 sparc 3734865 3734881 sparc64 5932081 5932249 tilegx 10839527 0 tilepro 10092546 10092610 x86_64 10349451 10349038 xtensa 1766572 1766572 So the patch helps nicely on many targets. I looked into the regressions; they all seem to be just unlucky, noise, or bad rtx_cost. The tilegx build fail is a target bug building _negvsi2.o -- the backend accepts shifts by 70 or 87 bits, but the assembler doesn't ;-) > @@ -11994,6 +12006,29 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1) > if (subreg_lowpart_p (op0) > && GET_MODE_PRECISION (GET_MODE (SUBREG_REG (op0))) < mode_width) > ; > + else if (subreg_lowpart_p (op0) Many of these lines start with a space before the tab, please fix. Okay for trunk with that fixed. Thank you! Segher