From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 60865 invoked by alias); 6 Jul 2015 14:04:21 -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 60563 invoked by uid 89); 6 Jul 2015 14:04:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.4 required=5.0 tests=AWL,BAYES_99,BAYES_999,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 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 (AES256-SHA encrypted) ESMTPS; Mon, 06 Jul 2015 14:04:17 +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 t66E418O010847; Mon, 6 Jul 2015 09:04:03 -0500 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id t66E3xvx010843; Mon, 6 Jul 2015 09:03:59 -0500 Date: Mon, 06 Jul 2015 14:04:00 -0000 From: Segher Boessenkool To: tbsaunde+gcc@tbsaunde.org Cc: gcc-patches@gcc.gnu.org Subject: Re: [PATCH 7/7] always define WORD_REGISTER_OPERATIONS Message-ID: <20150706140359.GA8677@gate.crashing.org> References: <1436184690-30134-1-git-send-email-tbsaunde+gcc@tbsaunde.org> <1436184690-30134-8-git-send-email-tbsaunde+gcc@tbsaunde.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1436184690-30134-8-git-send-email-tbsaunde+gcc@tbsaunde.org> User-Agent: Mutt/1.4.2.3i X-IsSubscribed: yes X-SW-Source: 2015-07/txt/msg00348.txt.bz2 Hi Trevor, On Mon, Jul 06, 2015 at 08:11:30AM -0400, tbsaunde+gcc@tbsaunde.org wrote: > * defaults.h: Provide default for WORD_REGISTER_OPERATIONS. > * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1. > * config/arc/arc.h: Likewise. > * config/arm/arm.h: Likewise. > * config/bfin/bfin.h: Likewise. > * config/epiphany/epiphany.h: Likewise. > * config/frv/frv.h: Likewise. > * config/ia64/ia64.h: Likewise. > * config/iq2000/iq2000.h: Likewise. > * config/lm32/lm32.h: Likewise. > * config/m32r/m32r.h: Likewise. > * config/mcore/mcore.h: Likewise. > * config/mep/mep.h: Likewise. > * config/microblaze/microblaze.h: Likewise. > * config/mips/mips.h: Likewise. > * config/mmix/mmix.h: > * config/mn10300/mn10300.h: > * config/nds32/nds32.h: > * config/nios2/nios2.h: > * config/pa/pa.h: > * config/rl78/rl78.h: > * config/sh/sh.h: > * config/sparc/sparc.h: > * config/stormy16/stormy16.h (enum reg_class): > * config/tilegx/tilegx.h: > * config/tilepro/tilepro.h: > * config/v850/v850.h: > * config/xtensa/xtensa.h: > * doc/tm.texi: Regenerate. Something went wrong here ;-) > @@ -12072,10 +12071,9 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1) > they no longer have defined values and the meaning of > the code has been changed. */ > && (0 > -#ifdef WORD_REGISTER_OPERATIONS > - || (mode_width > GET_MODE_PRECISION (tmode) > + || (!WORD_REGISTER_OPERATIONS > + && mode_width > GET_MODE_PRECISION (tmode) > && mode_width <= BITS_PER_WORD) > -#endif > || (mode_width <= GET_MODE_PRECISION (tmode) > && subreg_lowpart_p (XEXP (op0, 0)))) > && CONST_INT_P (XEXP (op0, 1)) Please get rid of that "0 ||" now. I think the ! is wrong here? The rest of the combine changes look good. > @@ -6114,13 +6112,12 @@ store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size) > highest_pow2_factor (offset)); > } > > -#ifdef WORD_REGISTER_OPERATIONS > /* If this initializes a field that is smaller than a > word, at the start of a word, try to widen it to a full > word. This special case allows us to output C++ member > function initializations in a form that the optimizers > can understand. */ > - if (REG_P (target) > + if (WORD_REGISTER_OPERATIONS && REG_P (target) > && bitsize < BITS_PER_WORD > && bitpos % BITS_PER_WORD == 0 > && GET_MODE_CLASS (mode) == MODE_INT Put that first && on a new line as well? Similar many times more. Segher