From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7742 invoked by alias); 9 Dec 2016 13:22:38 -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 7649 invoked by uid 89); 9 Dec 2016 13:22:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=H*i:sk:87lgvpl, H*f:sk:87lgvpl, Hx-languages-length:2921 X-HELO: mail-wj0-f193.google.com Received: from mail-wj0-f193.google.com (HELO mail-wj0-f193.google.com) (209.85.210.193) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 09 Dec 2016 13:22:31 +0000 Received: by mail-wj0-f193.google.com with SMTP id he10so2506841wjc.2 for ; Fri, 09 Dec 2016 05:22:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=N8fbRFti7YvOYRdsHfR6lGpGbkcLcnXIrzK0LtVjmms=; b=T1YIFtG+zFDcOfiPDPCgD3rWazXQgQkTbQN3JoiNvip0LBLXxbLjpnTDMHVw202cc6 bHy1Jo9t7Uhjmw42GnzGDK5nWuA3043FG/TTbjJsWwFqeba+INPfACgpWkLLVLknuDlk QaU918Yl14qbkII5RBDqumTejIchcDZ5SdJEzI39V3ys/NoMPYkg6FHqWnl9KJibN9dQ 6kxd6Xjh3NSud8NqAS1VmAXF5oegXpCi0z830n4O0lyA927OPPW/yQHZvaZdRriUWwvW UCWVMN0zOdB1T6T0L8g/XXXGTNiE8EI4B2krBifZG8JPVslit83NqHTc/Ew9yn5oPjQA 1btA== X-Gm-Message-State: AKaTC03a0Ldsd8DNz/ayWeI0WoWHOVhdyr9+lQ7nqtspBlSSf2gmAbuzOfkPCApkrrzJzAkyLdvgj3tf/umzCg== X-Received: by 10.195.11.41 with SMTP id ef9mr21274726wjd.89.1481289748931; Fri, 09 Dec 2016 05:22:28 -0800 (PST) MIME-Version: 1.0 Received: by 10.28.137.2 with HTTP; Fri, 9 Dec 2016 05:22:28 -0800 (PST) In-Reply-To: <87lgvpl06o.fsf@e105548-lin.cambridge.arm.com> References: <87h96dp8u6.fsf@e105548-lin.cambridge.arm.com> <87lgvpl06o.fsf@e105548-lin.cambridge.arm.com> From: Richard Biener Date: Fri, 09 Dec 2016 13:22:00 -0000 Message-ID: Subject: Re: [24/67] Replace a != BLKmode check with is_a To: GCC Patches , richard.sandiford@arm.com Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2016-12/txt/msg00817.txt.bz2 On Fri, Dec 9, 2016 at 2:08 PM, Richard Sandiford wrote: > This patch replaces a check against BLKmode with a check > of is_a , in a case where scalar integer > modes were the only useful alternatives left. So why's BLKmode no longer sth valid to check against? The check is only there to guard GET_MODE_ALIGNMENT / SLOW_UNALIGNED_ACCESS. Richard. > gcc/ > 2016-11-24 Richard Sandiford > Alan Hayward > David Sherwood > > * gimple-fold.c (gimple_fold_builtin_memory_op): Use > is_a instead of != BLKmode. > > diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c > index d00625b..c6b5411 100644 > --- a/gcc/gimple-fold.c > +++ b/gcc/gimple-fold.c > @@ -713,31 +713,29 @@ gimple_fold_builtin_memory_op (gimple_stmt_iterator *gsi, > unsigned ilen = tree_to_uhwi (len); > if (pow2p_hwi (ilen)) > { > + scalar_int_mode mode; > tree type = lang_hooks.types.type_for_size (ilen * 8, 1); > if (type > - && TYPE_MODE (type) != BLKmode > - && (GET_MODE_SIZE (TYPE_MODE (type)) * BITS_PER_UNIT > - == ilen * 8) > + && is_a (TYPE_MODE (type), &mode) > + && GET_MODE_SIZE (mode) * BITS_PER_UNIT == ilen * 8 > /* If the destination pointer is not aligned we must be able > to emit an unaligned store. */ > - && (dest_align >= GET_MODE_ALIGNMENT (TYPE_MODE (type)) > - || !SLOW_UNALIGNED_ACCESS (TYPE_MODE (type), dest_align) > - || (optab_handler (movmisalign_optab, TYPE_MODE (type)) > + && (dest_align >= GET_MODE_ALIGNMENT (mode) > + || !SLOW_UNALIGNED_ACCESS (mode, dest_align) > + || (optab_handler (movmisalign_optab, mode) > != CODE_FOR_nothing))) > { > tree srctype = type; > tree desttype = type; > - if (src_align < GET_MODE_ALIGNMENT (TYPE_MODE (type))) > + if (src_align < GET_MODE_ALIGNMENT (mode)) > srctype = build_aligned_type (type, src_align); > tree srcmem = fold_build2 (MEM_REF, srctype, src, off0); > tree tem = fold_const_aggregate_ref (srcmem); > if (tem) > srcmem = tem; > - else if (src_align < GET_MODE_ALIGNMENT (TYPE_MODE (type)) > - && SLOW_UNALIGNED_ACCESS (TYPE_MODE (type), > - src_align) > - && (optab_handler (movmisalign_optab, > - TYPE_MODE (type)) > + else if (src_align < GET_MODE_ALIGNMENT (mode) > + && SLOW_UNALIGNED_ACCESS (mode, src_align) > + && (optab_handler (movmisalign_optab, mode) > == CODE_FOR_nothing)) > srcmem = NULL_TREE; > if (srcmem) > @@ -753,7 +751,7 @@ gimple_fold_builtin_memory_op (gimple_stmt_iterator *gsi, > gimple_set_vuse (new_stmt, gimple_vuse (stmt)); > gsi_insert_before (gsi, new_stmt, GSI_SAME_STMT); > } > - if (dest_align < GET_MODE_ALIGNMENT (TYPE_MODE (type))) > + if (dest_align < GET_MODE_ALIGNMENT (mode)) > desttype = build_aligned_type (type, dest_align); > new_stmt > = gimple_build_assign (fold_build2 (MEM_REF, desttype, >