From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id 93AC63858D20 for ; Fri, 20 Jan 2023 08:18:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 93AC63858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out1.suse.de (Postfix) with ESMTP id EFA192280C; Fri, 20 Jan 2023 08:18:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1674202688; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=5EkBB5mpUatLbBk/uvXa6FwUKTMqZx1TSHqVJVGv07g=; b=EOVgNm5loEkt8vICS8CDRN0+Z91ADsaaZ1FgBoHiu+rjmJLMO4eLt+arWOGXD8g6kF9FHI fPMAFrA/dFg2xTYWkXo5YDl62f1awnk0nyYcFx82dw844iwt19j7s24X81mRS8Lku4Xw3B 98sGQzQGoE+FFU+6VXS/Rev2aSEF2Kc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1674202688; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=5EkBB5mpUatLbBk/uvXa6FwUKTMqZx1TSHqVJVGv07g=; b=bjrJ13fU1nkLIfU3UtVgDW4K2nzaYJENg+uCRLDHqiQ/2Z+OKoK6YcugRR/n8OW07nZ9w8 xJt7QgH9BmQ/3vBg== Received: from wotan.suse.de (wotan.suse.de [10.160.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by relay2.suse.de (Postfix) with ESMTPS id D35042C141; Fri, 20 Jan 2023 08:18:08 +0000 (UTC) Date: Fri, 20 Jan 2023 08:18:08 +0000 (UTC) From: Richard Biener To: Jakub Jelinek cc: gcc-patches@gcc.gnu.org Subject: Re: [PATCH] niter: Fix up unused var warning [PR108457] In-Reply-To: Message-ID: References: User-Agent: Alpine 2.22 (LSU 394 2020-01-19) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-5.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Thu, 19 Jan 2023, Jakub Jelinek wrote: > Hi! > > tree-ssa-loop-niter.cc (build_cltz_expr) gets unused variable mode > warning on some architectures where C[LT]Z_DEFINED_VALUE_AT_ZERO > macro(s) don't use the first argument (which includes the > defaults.h definitions of: > #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) 0 > #define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) 0 > Other uses of this macro avoid this problem by avoiding temporaries > which are only used as argument to those macros, the following patch > does it the same way for consistency. Plus some formatting fixes > while at it. > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? OK. > 2023-01-19 Jakub Jelinek > > PR tree-optimization/108457 > * tree-ssa-loop-niter.cc (build_cltz_expr): Use > SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO > argument instead of a temporary. Formatting fixes. > > --- gcc/tree-ssa-loop-niter.cc.jj 2023-01-16 11:52:05.806885510 +0100 > +++ gcc/tree-ssa-loop-niter.cc 2023-01-19 13:10:42.872595970 +0100 > @@ -2252,16 +2252,16 @@ build_cltz_expr (tree src, bool leading, > call = build_call_expr_internal_loc (UNKNOWN_LOCATION, ifn, > integer_type_node, 1, src); > int val; > - scalar_int_mode mode = SCALAR_INT_TYPE_MODE (utype); > int optab_defined_at_zero > - = leading ? CLZ_DEFINED_VALUE_AT_ZERO (mode, val) > - : CTZ_DEFINED_VALUE_AT_ZERO (mode, val); > + = (leading > + ? CLZ_DEFINED_VALUE_AT_ZERO (SCALAR_INT_TYPE_MODE (utype), val) > + : CTZ_DEFINED_VALUE_AT_ZERO (SCALAR_INT_TYPE_MODE (utype), val)); > if (define_at_zero && !(optab_defined_at_zero == 2 && val == prec)) > { > tree is_zero = fold_build2 (NE_EXPR, boolean_type_node, src, > build_zero_cst (TREE_TYPE (src))); > - call = fold_build3(COND_EXPR, integer_type_node, is_zero, call, > - build_int_cst (integer_type_node, prec)); > + call = fold_build3 (COND_EXPR, integer_type_node, is_zero, call, > + build_int_cst (integer_type_node, prec)); > } > } > else if (prec == 2 * lli_prec) > @@ -2275,22 +2275,22 @@ build_cltz_expr (tree src, bool leading, > /* We count the zeroes in src1, and add the number in src2 when src1 > is 0. */ > if (!leading) > - std::swap(src1, src2); > + std::swap (src1, src2); > tree call1 = build_call_expr (fn, 1, src1); > tree call2 = build_call_expr (fn, 1, src2); > if (define_at_zero) > { > tree is_zero2 = fold_build2 (NE_EXPR, boolean_type_node, src2, > build_zero_cst (TREE_TYPE (src2))); > - call2 = fold_build3(COND_EXPR, integer_type_node, is_zero2, call2, > - build_int_cst (integer_type_node, lli_prec)); > + call2 = fold_build3 (COND_EXPR, integer_type_node, is_zero2, call2, > + build_int_cst (integer_type_node, lli_prec)); > } > tree is_zero1 = fold_build2 (NE_EXPR, boolean_type_node, src1, > build_zero_cst (TREE_TYPE (src1))); > - call = fold_build3(COND_EXPR, integer_type_node, is_zero1, call1, > - fold_build2 (PLUS_EXPR, integer_type_node, call2, > - build_int_cst (integer_type_node, > - lli_prec))); > + call = fold_build3 (COND_EXPR, integer_type_node, is_zero1, call1, > + fold_build2 (PLUS_EXPR, integer_type_node, call2, > + build_int_cst (integer_type_node, > + lli_prec))); > } > else > { > @@ -2302,14 +2302,13 @@ build_cltz_expr (tree src, bool leading, > { > tree is_zero = fold_build2 (NE_EXPR, boolean_type_node, src, > build_zero_cst (TREE_TYPE (src))); > - call = fold_build3(COND_EXPR, integer_type_node, is_zero, call, > - build_int_cst (integer_type_node, prec)); > + call = fold_build3 (COND_EXPR, integer_type_node, is_zero, call, > + build_int_cst (integer_type_node, prec)); > } > > if (leading && prec < i_prec) > - call = fold_build2(MINUS_EXPR, integer_type_node, call, > - build_int_cst (integer_type_node, > - i_prec - prec)); > + call = fold_build2 (MINUS_EXPR, integer_type_node, call, > + build_int_cst (integer_type_node, i_prec - prec)); > } > > return call; > > Jakub > > -- Richard Biener SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman; HRB 36809 (AG Nuernberg)