From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by sourceware.org (Postfix) with ESMTPS id B237F385AC09 for ; Mon, 20 Nov 2023 14:50:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B237F385AC09 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B237F385AC09 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::634 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700491854; cv=none; b=J4Y+DbgGHIhsieKpG/dVMTKAAiyYeZL7rXXiTAhjvBr7IiIiJguGUEz2mOAx3e5xW2SIYfSG/JawqAQsTGjLJAS9EYn4V2AXMFyzPWUyiABYg/qHTN6f9yW/I+j7mAgWdeKWWKGR+K+quHTSQR5xkG7zIASQU/EL5y5pDEK+jpc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700491854; c=relaxed/simple; bh=JXnMzarWFw12DJAX09b/uj6JTCx9wzma86Omk49uaKA=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=CLkOF8T26Ns2a4HMdBmq/t7Ch2MVV/8EMPN4N7HlnR9FqwaMvoCglmDLh2SUVXGlkzu4T5l08s5V51XAntYPsWdUnlaArMcZUXFSSHK1ka/ECOCaCKnZef+edjHbZJqWU/PK2+9sSua65LZomvnqTAMLCneOJqhYazvfbvXtJro= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-a00cbb83c80so28674666b.0 for ; Mon, 20 Nov 2023 06:50:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1700491850; x=1701096650; darn=gcc.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=uI4mpJ48zzs86qWroxgGWw8R2WluACE/UWaUM7Crbqk=; b=fQOoibxBDJ9Q8kDx80Gm69Ii0bhuu2pU4tjP4Jlwt15NYQHc5xBfrnT38HIIPUJIJs uX7Lr+l288jlLeSt8LVzTugcOZ7tjeBOaNaRneUTXl7cBXaDTOXrYBg/Nwwbaz7Vkz+J VIVlCW/jbPNOoVfBIvSQ3RuAPIVNpdOYYKIo9Bpb1l8TOLdv4+vNdbpgtfXYRC0vFEeh 6Vr4VxN24uRO711dlVfN1avRfKpETCNenZHKej/V2fDqVmuJT1reW3VQCuBNMq3novwg AspT0GbFrD+h2XR3iJ95Pz5H30FCju489X0IIWnuk1K4uLreaItq+zvq7vYqGJQGyskm whYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700491850; x=1701096650; h=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=uI4mpJ48zzs86qWroxgGWw8R2WluACE/UWaUM7Crbqk=; b=nRRtgJ8yXEBgUJ+QsgAOLPqv4FEPGiynVp0w1RbT0zaCs2Vh52AMsa9ReToWlgg5x5 oO8Lxo5kL5aMSp4S8onj0JkTQCsLwLEjEjeAiPcA/GwF6SstT4l4QCMdL75oNFAmcgys 6/JR1ZM36pEib3fPTicSOpLb5ChRHuyZZMG6gD7s1ejiCOcscBDd9ts1ekqfOa6ZiKyP 07N/pCdebgiIjHE+5V6BcgkrP3CeWSSBdflPid4wKhYH6yytDCrUPkEtB5oKQJaWwydj 3QbREqoozhNvv2IXJS/8uh0uX1PVtsnOIKSd10BnBDYVgLRhTMnX0k5QwO1HHqtauyMm 0DJw== X-Gm-Message-State: AOJu0YwTe2lYFpchKzODD8YVeM2iQbaJlgCXq32K6QxAeT8yCKzO/KFl oqH1Dl0v4WC6Dxu5GMD3+4uTxVdGA8w9q+bWRqwNsg== X-Google-Smtp-Source: AGHT+IE/IgPVeMvxbnCpfJg3vmyO1cG+33/Ytx9rKhiko7GFLyylb0RXb2Ad2R83HUl/FCSJbTr9E3Q/3Z5TpxvQnVk= X-Received: by 2002:a17:907:a608:b0:9be:263b:e31e with SMTP id vt8-20020a170907a60800b009be263be31emr7386334ejc.33.1700491850214; Mon, 20 Nov 2023 06:50:50 -0800 (PST) MIME-Version: 1.0 References: <20231113142658.69039-1-rearnsha@arm.com> <20231113142658.69039-4-rearnsha@arm.com> <724d822d-7bf1-4284-8688-cc834fd90817@foss.arm.com> <5f0f6e18-7c6a-4873-b9d9-722a431d4a3b@foss.arm.com> In-Reply-To: <5f0f6e18-7c6a-4873-b9d9-722a431d4a3b@foss.arm.com> From: Christophe Lyon Date: Mon, 20 Nov 2023 15:50:48 +0100 Message-ID: Subject: Re: [committed 03/22] arm: testsuite: avoid hard-float ABI incompatibility with -march To: Richard Earnshaw Cc: Richard Earnshaw , "gcc-patches@gcc.gnu.org" Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,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 Mon, 20 Nov 2023 at 15:39, Richard Earnshaw wrote: > > > > On 20/11/2023 14:24, Christophe Lyon wrote: > > On Mon, 20 Nov 2023 at 14:58, Richard Earnshaw > > wrote: > >> > >> > >> > >> On 20/11/2023 13:36, Christophe Lyon wrote: > >>> On Mon, 20 Nov 2023 at 13:44, Richard Earnshaw > >>> wrote: > >>>> > >>>> > >>>> > >>>> On 20/11/2023 10:23, Christophe Lyon wrote: > >>>>> Hi Richard, > >>>>> > >>>>> On Mon, 13 Nov 2023 at 15:28, Richard Earnshaw wrote: > >>>>>> > >>>>>> > >>>>>> A number of tests in the gcc testsuite, especially for arm-specific > >>>>>> targets, add various flags to control the architecture. These run > >>>>>> into problems when the compiler is configured with -mfpu=auto if the > >>>>>> new architecture lacks an architectural feature that implies we have > >>>>>> floating-point instructions. > >>>>>> > >>>>>> The testsuite makes this worse as it falls foul of this requirement in > >>>>>> the base architecture strings provided by target-supports.exp. > >>>>>> > >>>>>> To fix this we add "+fp", or something equivalent to this, to all the > >>>>>> base architecture specifications. The feature will be ignored if the > >>>>>> float ABI is set to soft. > >>>>>> > >>>>>> gcc/testsuite: > >>>>>> > >>>>>> * lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok): > >>>>>> Add base FPU specifications to all architectures that can support > >>>>>> one. > >>>>>> --- > >>>>>> gcc/testsuite/lib/target-supports.exp | 50 +++++++++++++-------------- > >>>>>> 1 file changed, 25 insertions(+), 25 deletions(-) > >>>>>> > >>>>> > >>>>> Our CI has detected some regressions with this patch, in particular > >>>>> when testing for cortex-m55: > >>>>> > >>>>> with > >>>>> -mthumb/-march=armv8.1-m.main+mve.fp+fp.dp/-mtune=cortex-m55/-mfloat-abi=hard/-mfpu=auto > >>>>> and GCC configured with --disable-multilib --with-mode=thumb > >>>>> --with-arch=armv8.1-m.main+mve.fp+fp.dp --with-float=hard > >>>>> > >>>>> you can see our logs here: > >>>>> https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-thumb_m55_hard_eabi-build/209/artifact/artifacts/00-sumfiles/ > >>>>> > >>>>> Thanks, > >>>>> > >>>>> Christophe > >>>> > >>>> What exactly am I supposed to be looking at here? I see no description > >>>> of what those logs represent. If they are supposed to be before and > >>>> after, then why does the after only run a tiny fraction of the testsuite > >>>> (Running gcc.git~master/gcc/testsuite/gcc.target/arm/arm.exp ... > >>>> Running gcc.git~master/gcc/testsuite/gcc.target/arm/cmse/cmse.exp ... > >>>> Running gcc.git~master/gcc/testsuite/gcc.target/arm/lto/lto.exp ...) > >>>> > >>>> The logs give no clue as to why the reminder of the testsuite wasn't run. > >>>> > >>>> Please don't make me guess. > >>>> > >>> > >>> Here is a summary with the list of regressions: > >>> https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-thumb_m55_hard_eabi-build/209/artifact/artifacts/notify/regressions.sum/*view*/ > >> > >> OK, that's much more useful. But how was I supposed to know that link > >> existed? > >> > > The full notification email contains a lot of information, with > > several pointers to our Jenkins artifacts. > > The notification email is not yet automatically sent to contributors > > because we are still polishing, and I thought I'd save you some time > > by just sending the useful links. > > > > Looks like it's time to send those automatically too. > > > >>> > >>> I thought you'd be able to find your way in the logs above, the .0 > >>> files contain the logs of the initial full testsuite run, and .1 ones > >>> contain the logs of the second run of the testsuite, restricted to the > >>> .exp files where we detected regressions. So looking at gcc.log.1.xz > >>> will give you details of the regressions shown in the link above. > >> > >> There's nothing in the page you sent me to that gives any clue as to how > >> to read the logs there. So my assumption was that the .0 was a before > >> run and .1 an after. Please, if you're going to direct people to the > >> log files, provide some way for them to understand what the log files show. > >> > >> Now, to the specific issues: > >> > >> Running gcc:gcc.target/arm/arm.exp ... > >> FAIL: gcc.target/arm/attr_thumb-static2.c (test for excess errors) > >> UNRESOLVED: gcc.target/arm/attr_thumb-static2.c scan-assembler-times blx 2 > >> > >> This was fixed with "arm: testsuite: avoid problems with -mfpu=auto in > >> attr_thumb-static2.c", which is a later patch in the series (patch 6). > >> > >> I don't think it's useful to try to regression test each individual > >> patch, it wasn't practical to try to get every patch into order in the > >> series (it would have made for a lot of churn on some files, especially > >> target-supports.exp), so only a fully before and a fully after run is > >> useful. If there are issues once the whole series has been applied, > >> then that is much more interesting. > >> > > > > I looked at this in more detail. > > That specific bisection build was triggered because we detected > > regressions, after the full series was committed. > > What happens is that at the first bad commit (this one) there were > > more regressions than after the full series was committed. > > > > So, the extract of > > https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-thumb_m55_hard_eabi-build/209/artifact/artifacts/notify/regressions.sum/*view*/ > > which remains valid on current trunk is: > > Running gcc:gcc.target/arm/cmse/cmse.exp ... > > FAIL: gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O0 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O1 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O2 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O3 -g scan-assembler > > msr\tAPSR_nzcvqg, lr > > FAIL: gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -Os scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O0 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O1 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O2 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O3 -g scan-assembler > > msr\tAPSR_nzcvqg, lr > > FAIL: gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c > > -march=armv8-m.main+fp -mthumb -Os scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c > > -march=armv8-m.main+fp -mthumb -mfloat-abi=soft -O0 scan-assembler > > msr\tAPSR_nzcvqg, lr > > FAIL: gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c > > -march=armv8-m.main+fp -mthumb -mfloat-abi=soft -O1 scan-assembler > > msr\tAPSR_nzcvqg, lr > > FAIL: gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c > > -march=armv8-m.main+fp -mthumb -mfloat-abi=soft -O2 scan-assembler > > msr\tAPSR_nzcvqg, lr > > FAIL: gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c > > -march=armv8-m.main+fp -mthumb -mfloat-abi=soft -O3 -g > > scan-assembler msr\tAPSR_nzcvqg, lr > > FAIL: gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c > > -march=armv8-m.main+fp -mthumb -mfloat-abi=soft -Os scan-assembler > > msr\tAPSR_nzcvqg, lr > > FAIL: gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O0 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O1 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O2 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O3 -g scan-assembler > > msr\tAPSR_nzcvqg, lr > > FAIL: gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -Os scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O0 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O1 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O2 scan-assembler msr\tAPSR_nzcvqg, > > lr > > FAIL: gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -O3 -g scan-assembler > > msr\tAPSR_nzcvqg, lr > > FAIL: gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c > > -march=armv8-m.main+fp -mthumb -Os scan-assembler msr\tAPSR_nzcvqg, > > lr > > > >> R. > > The compiled output contains (at least for the case I tried -mthumb > -march=armv8.1-m.main+mve.fp+fp.dp -mtune=cortex-m55 -mfloat-abi=hard > -mfpu=auto -fdiagnostics-plain-output -march=armv8-m.base -mthumb > -mfloat-abi=soft -O1 -mcmse -ffat-lto-objects -fno-ident -S -o cmse-2.s): > > msr APSR_nzcvq, r1 > > So this will never match the expected pattern, which is looking for 'lr' > not 'r1'. Are you sure these tests were running before? > No, your patch enabled them. I already noticed/reported a long time ago that cmse.exp was not executed by all the configurations we currently run and I was surprised to see errors in my manual runs with more specific configurations. Good to see it enabled now. > R.