From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [IPv6:2a00:1450:4864:20::22b]) by sourceware.org (Postfix) with ESMTPS id 7E9AC3858C66 for ; Wed, 10 May 2023 06:41:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7E9AC3858C66 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-lj1-x22b.google.com with SMTP id 38308e7fff4ca-2ac785015d6so73602171fa.0 for ; Tue, 09 May 2023 23:41:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683700891; x=1686292891; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=p3awUUycVkP6hDUwpE0ga2BE01WtykBVMPi9eey0eZM=; b=GdEE/dfB+f8m39TzOqNMoKBU+IFcKDTz6soS1pJtdG5o3FEAsqn1rCMX1w+euIXhg0 9Zl6J0kIUEj5rbd2UsJKUYYndw6kj8Av+fGcPfdyZksx6u87jKjt4hwWkR3rs4TTuSD5 S4L75MNyVpm3SIlEMTJ2Z/O4ctL2st27/OJiF2fH1CYzvy8fjR99dbp5Y0EY5z6FMUPD uEI+cY4mqfDrAVYLSVbOhuTuF8fLmES0fhJFG+i7fVh6390l9sNTc4tWXxmdsU3Z7ZOT GB+2XP/f8jWSARkcs1vMal43Jb+RrLxpsZ/sg4jN8pl1T6dlaJe3V2lUB/MzE9LST91g CcdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683700891; x=1686292891; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=p3awUUycVkP6hDUwpE0ga2BE01WtykBVMPi9eey0eZM=; b=j993Qmu4Sf+y58/39YolxT8uxakTxzaydkCuPTnRyVDZvS7QNRhZZLjeDoKN0ufqWS dChUIw1IwBJ8HzWpB9IxiAAj3rJsuPPes+895IthBRVHO3XE26HvWjcXnlWIdO654SeT mA4mM4QcXVPp6ZGmlsx+aQozKMxofjXItFRy9kWOKAKexg/NqLhTqigEn1dO8/mTXnU+ hAFoboLvp97wBYo7Y3a+UIOut6W429Nu6iv0jxn+2NcDqQU5RBU9TNHiJ7kyHbYiZlgg bzU8M7mtPpAEL2F6n9sQfOxvuoW62humJmP8rxgEslLmOqv5QxzN6FsT1djXmxHrdVzz sNkg== X-Gm-Message-State: AC+VfDyK/jKMuyea2C7MX6LU9L7B7KTvGPniI1PSfEXSnIWiaymdDsYp mdcPuBnTj+dviGQgdEZsI7k6sxMphkfm82f9dyIuVVCu X-Google-Smtp-Source: ACHHUZ7yGsIQTBZn39CjeGBTS00vI2BSQtYy06JPozmXfOGYSoCLOtWWnrXariC1vC2QWlHINPxNztcbCbrF4WuJk9E= X-Received: by 2002:a05:651c:212:b0:2a8:c75c:96cb with SMTP id y18-20020a05651c021200b002a8c75c96cbmr1559388ljn.1.1683700890696; Tue, 09 May 2023 23:41:30 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Richard Biener Date: Wed, 10 May 2023 08:39:44 +0200 Message-ID: Subject: Re: [PATCH] Fixes and workarounds for warnings during autoprofiledbootstrap build To: Eugene Rozenfeld Cc: "gcc-patches@gcc.gnu.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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 Wed, May 10, 2023 at 3:38=E2=80=AFAM Eugene Rozenfeld via Gcc-patches wrote: > > autoprofiledbootstrap build produces new warnings since inlining decision= s > are different from other builds. This patch contains fixes and workaround= s > for those warnings. > > Tested on x86_64-pc-linux-gnu. Rather than this would it make sense to add --disable-werror to autoprofiledbootstrap configs like we do for others? I also wonder how "stable" the afdo bootstr= ap inlining decisions are, so applying these workarounds may not be sustainabl= e? > gcc/ChangeLog: > > * config/i386/i386-expand.cc (expand_vec_perm_interleave2): Work = around > -Wstringop-overflow false positive during autoprofiledbootstrap > * ipa-devirt.cc (debug_tree_odr_name): Fix for -Wformat-overflow > warning during autoprofiledbootstrap > * lra-eliminations.cc (setup_can_eliminate): Work around > -Wmaybe-uninitialized false positive during autoprofiledbootstrap > * opts-common.cc (candidates_list_and_hint): Work around > -Wstringop-overflow false positive during autoprofiledbootstrap > * tree-ssa-ccp.cc (bit_value_unop): Work around -Wmaybe-uninitial= ized > false positive during autoprofiledbootstrap > * wide-int.h (wi::copy): Work around -Wmaybe-uninitialized false > positive during autoprofiledbootstrap > --- > gcc/config/i386/i386-expand.cc | 11 +++++++++++ > gcc/ipa-devirt.cc | 3 ++- > gcc/lra-eliminations.cc | 11 +++++++++++ > gcc/opts-common.cc | 1 + > gcc/tree-ssa-ccp.cc | 11 +++++++++++ > gcc/wide-int.h | 11 +++++++++++ > 6 files changed, 47 insertions(+), 1 deletion(-) > > diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand= .cc > index 634fe61ba79..be9f912775b 100644 > --- a/gcc/config/i386/i386-expand.cc > +++ b/gcc/config/i386/i386-expand.cc > @@ -20419,6 +20419,13 @@ expand_vec_perm_pblendv (struct expand_vec_perm_= d *d) > > static bool expand_vec_perm_interleave3 (struct expand_vec_perm_d *d); > > +/* Work around -Wstringop-overflow false positive during autoprofiledboo= tstrap. */ > + > +# if GCC_VERSION >=3D 7001 > +#pragma GCC diagnostic push > +#pragma GCC diagnostic ignored "-Wstringop-overflow" > +#endif > + > /* A subroutine of ix86_expand_vec_perm_const_1. Try to simplify > a two vector permutation into a single vector permutation by using > an interleave operation to merge the vectors. */ > @@ -20737,6 +20744,10 @@ expand_vec_perm_interleave2 (struct expand_vec_p= erm_d *d) > return true; > } > > +# if GCC_VERSION >=3D 7001 > +#pragma GCC diagnostic pop > +#endif > + > /* A subroutine of ix86_expand_vec_perm_const_1. Try to simplify > a single vector cross-lane permutation into vpermq followed > by any of the single insn permutations. */ > diff --git a/gcc/ipa-devirt.cc b/gcc/ipa-devirt.cc > index 819860258d1..36ea266e834 100644 > --- a/gcc/ipa-devirt.cc > +++ b/gcc/ipa-devirt.cc > @@ -4033,7 +4033,8 @@ debug_tree_odr_name (tree type, bool demangle) > odr =3D cplus_demangle (odr, opts); > } > > - fprintf (stderr, "%s\n", odr); > + if (odr !=3D NULL) > + fprintf (stderr, "%s\n", odr); > } > > /* Register ODR enum so we later stream record about its values. */ > diff --git a/gcc/lra-eliminations.cc b/gcc/lra-eliminations.cc > index 42206366669..05e2a7e0d68 100644 > --- a/gcc/lra-eliminations.cc > +++ b/gcc/lra-eliminations.cc > @@ -138,6 +138,13 @@ lra_debug_elim_table (void) > print_elim_table (stderr); > } > > +/* Work around -Wmaybe-uninitialized false positive during autoprofiledb= ootstrap. */ > + > +# if GCC_VERSION >=3D 4007 > +#pragma GCC diagnostic push > +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" > +#endif > + > /* Setup possibility of elimination in elimination table element EP to > VALUE. Setup FRAME_POINTER_NEEDED if elimination from frame > pointer to stack pointer is not possible anymore. */ > @@ -152,6 +159,10 @@ setup_can_eliminate (class lra_elim_table *ep, bool = value) > REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) =3D 0; > } > > +# if GCC_VERSION >=3D 4007 > +#pragma GCC diagnostic pop > +#endif > + > /* Map: eliminable "from" register -> its current elimination, > or NULL if none. The elimination table may contain more than > one elimination for the same hard register, but this map specifies > diff --git a/gcc/opts-common.cc b/gcc/opts-common.cc > index 23ddcaa3b55..0bb8e34e2b0 100644 > --- a/gcc/opts-common.cc > +++ b/gcc/opts-common.cc > @@ -1388,6 +1388,7 @@ candidates_list_and_hint (const char *arg, char *&s= tr, > p[len] =3D ' '; > p +=3D len + 1; > } > + gcc_assert(p > str); > p[-1] =3D '\0'; > return find_closest_string (arg, &candidates); > } > diff --git a/gcc/tree-ssa-ccp.cc b/gcc/tree-ssa-ccp.cc > index 03a984f2adf..a54e5a90464 100644 > --- a/gcc/tree-ssa-ccp.cc > +++ b/gcc/tree-ssa-ccp.cc > @@ -1976,6 +1976,13 @@ bit_value_binop (enum tree_code code, signop sgn, = int width, > } > } > > +/* Work around -Wmaybe-uninitialized false positive during autoprofiledb= ootstrap. */ > + > +# if GCC_VERSION >=3D 4007 > +#pragma GCC diagnostic push > +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" > +#endif > + > /* Return the propagation value when applying the operation CODE to > the value RHS yielding type TYPE. */ > > @@ -2011,6 +2018,10 @@ bit_value_unop (enum tree_code code, tree type, tr= ee rhs) > return val; > } > > +# if GCC_VERSION >=3D 4007 > +#pragma GCC diagnostic pop > +#endif > + > /* Return the propagation value when applying the operation CODE to > the values RHS1 and RHS2 yielding type TYPE. */ > > diff --git a/gcc/wide-int.h b/gcc/wide-int.h > index 6be343c0eb5..9c50dd869b6 100644 > --- a/gcc/wide-int.h > +++ b/gcc/wide-int.h > @@ -1806,6 +1806,13 @@ wi::get_binary_precision (const T1 &x, const T2 &y= ) > get_binary_result (x, y)); > } > > +/* Work around -Wmaybe-uninitialized false positive during autoprofiledb= ootstrap. */ > + > +# if GCC_VERSION >=3D 4007 > +#pragma GCC diagnostic push > +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" > +#endif > + > /* Copy the contents of Y to X, but keeping X's current precision. */ > template > inline void > @@ -1821,6 +1828,10 @@ wi::copy (T1 &x, const T2 &y) > x.set_len (len, y.is_sign_extended); > } > > +# if GCC_VERSION >=3D 4007 > +#pragma GCC diagnostic pop > +#endif > + > /* Return true if X fits in a HOST_WIDE_INT with no loss of precision. = */ > template > inline bool > -- > 2.25.1 >