From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by sourceware.org (Postfix) with ESMTPS id A19763858C52 for ; Fri, 29 Sep 2023 06:32:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A19763858C52 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-lf1-x134.google.com with SMTP id 2adb3069b0e04-50444e756deso17900717e87.0 for ; Thu, 28 Sep 2023 23:32:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695969120; x=1696573920; darn=gcc.gnu.org; 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=rpYJJolwhkaospBv/mAaaJdlbJmY43DnzBNPV2LYQ0A=; b=gKBHkbcM8JqLuUuT6i3YlhXQTbMInDdEsZiFBc+RTlPryCAmRl4UQaZsiAhbhV9CSV hw5PjPlAIxnoxOCnitonH0nsVlqJAcT1V0lXTUtuiLC/99hqqmegBmsznkC7Ps7f1rV+ drMYBha6TpWfBIkjjhhJLoJV1eDjpDpAH1iJN9/nmWJFUgxEGLI4WMm+OUWx5J0O9s94 brbIlbWJ2zH+jeFBLQMDhH9RUi5vdsM0iWaifRXD0BwLLKknSkxmiLNigBbn399CAcAb eSH/6wTIwJn4yN8r4c+NmAnpq+xxeGY5q+Fp/nmAty1br0tUdIUD5RQk26l3cvW9jura 3sOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695969120; x=1696573920; 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=rpYJJolwhkaospBv/mAaaJdlbJmY43DnzBNPV2LYQ0A=; b=ITwbvzTN0dkIb8xr9Qco/VMh1ZP1a7/Eh02rQts2pnTYrO8EI7IZKYAPQRVQaomMLB 3zYp1LEvpVOEjX3z6jC6TkoTgBhwrqamHMmhalpOCi+HxmZoVLA94z8t4reqsIRU1mZc CZ+z5NegeFU+wu8t/wmHfdBWvvELpgcxG2KY0aEWNsuTXUaRNqGcwvUaw6NAgg2i6/1D qXk0CHpoz1WDVw+dd4g3GQ9t15wLYR+2V1mXBJxFvlB2fWajXdLZ7epZWim9ryS4jAf4 JxCrGIril1anWjYcMzEEwd3teQmlCKDyMvh+gUBsW5F+nBL/hFtiDD0L5zlaCPkCd0aS VcXA== X-Gm-Message-State: AOJu0Yya2IxopyX+xTg4JDBweTo8lJapKIRkVghn5MDtiDjGldAUOm/C yNk56ndhfrhFIdQhOug9mItf8Osy9xRhvyNlw/k= X-Google-Smtp-Source: AGHT+IGqxz+Ot/mAC26Gvaiyrz4KMWvTM6N1PBx5Hu5IESVWlgGEd+LSz1Q9ZVeuTXu1WLYwcdSNWTAwa1QRe/NFEPM= X-Received: by 2002:a05:6512:47c:b0:503:38ef:eb54 with SMTP id x28-20020a056512047c00b0050338efeb54mr2890826lfd.37.1695969119975; Thu, 28 Sep 2023 23:31:59 -0700 (PDT) MIME-Version: 1.0 References: <8673fdfc-4b16-ff4a-8906-c47403cde825@redhat.com> <3e29a0ea-b143-4128-92bf-40f6fc01762b@gmail.com> In-Reply-To: <3e29a0ea-b143-4128-92bf-40f6fc01762b@gmail.com> From: Richard Biener Date: Fri, 29 Sep 2023 08:31:47 +0200 Message-ID: Subject: Re: [PATCH] Remove poly_int_pod To: Jeff Law Cc: Jason Merrill , gcc-patches@gcc.gnu.org, jakub@redhat.com, richard.sandiford@arm.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,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, Sep 28, 2023 at 9:10=E2=80=AFPM Jeff Law wr= ote: > > > > On 9/28/23 11:26, Jason Merrill wrote: > > On 9/28/23 05:55, Richard Sandiford wrote: > >> poly_int was written before the switch to C++11 and so couldn't > >> use explicit default constructors. This led to an awkward split > >> between poly_int_pod and poly_int. poly_int simply inherited from > >> poly_int_pod and added constructors, with the argumentless constructor > >> having an empty body. But inheritance meant that poly_int had to > >> repeat the assignment operators from poly_int_pod (again, no C++11, > >> so no "using" to inherit base-class implementations). > >> > >> All that goes away if we switch to using default constructors. > >> > >> The main complication is ensuring that braced initialisation still > >> gives a constexpr, so that static variables can be initialised without > >> runtime code. The two problems here are: > >> > >> (1) When initialising a poly_int with fewer than N > >> coefficients, the other coefficients need to be a zero of > >> the same precision as the explicit coefficients. This was > >> previously done in a for loop using wi::ints_for<...>::zero, > >> but C++11 constexpr constructors can't have function bodies. > >> The patch instead uses a series of delegated initialisers to > >> fill in the implicit coefficients. > > > > Perhaps it's time to update the bootstrap requirement to C++14 (i.e. GC= C > > 5, from eight years ago). Not that this would affect this particular > > patch. > IIRC the primary reason we settled on gcc-4.8.x was RHEL7/Centos7. With > RHEL 7 approaching EOL moving the baseline forward would seem to make sen= se. > > I'd want to know if this affects folks using SuSE's enterprise distro > before actually making the change, but I'm broadly in favor of moving > forward it it's not going to have a major impact on users that are using > enterprise distros. We're thinking of making GCC 13 the last major release to officially build for SLE12 which also uses GCC 4.8, so we'd be fine with doing this for GCC 14. Richard. > > jeff