From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com [IPv6:2a00:1450:4864:20::22f]) by sourceware.org (Postfix) with ESMTPS id 066D83858D39 for ; Tue, 28 Mar 2023 14:30:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 066D83858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=sifive.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=sifive.com Received: by mail-lj1-x22f.google.com with SMTP id s20so12780093ljp.1 for ; Tue, 28 Mar 2023 07:30:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1680013847; 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=FC/1TC/R0uCjTIqKqtYY4QXlHcx0GomQPSMbSVCIX+I=; b=XqlDBup9tGDWnO8Y36UNxe/mdEcAZDeLIW9RxFNc+AmPlf306qFp9n2zDWp3fxAYRP IHGFl8vqs7UatCUnHNK2h+7XJwLiWfFEiBeeNb43f2pKBpCQMU81GRbJE47B71ZpH1Vf qenS4mhwFzFGZmuMiNiQYIdnmQwKIm/xWSSbrQDp/skI3zqHn74Ew0lgQSa8L+rVX5oK etkoZE4sHxuzL7XMCCB4g9j3X0kedKrxoFrT8/P1e3nxJB84OySLeNxOsetkjMNbD0w0 WPuCR2rHxv1okvZvm+YplsqaThIetnJ1hWAgPSocUIlCY4DLnVkoLmaBlMlLn23yg+8C l0pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680013847; 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=FC/1TC/R0uCjTIqKqtYY4QXlHcx0GomQPSMbSVCIX+I=; b=t8LNq+Qx6X/tRRx5WqPm4egZnlWYDRJM738gvuesWN3TvzYknkB0YtwE+r++wgqE+q lhXOBTJPiHHq9IEr3aNfGKYjc1FyaCUGdpDv/YNZKmxvtUnkMGpz0wmkaLjuHUimgd5a QvI40n9XI1CeBhYgAzi0ZZT0eeCQ0x5WcOLb35K1U8sFMoLd4vCZUqbkQQFRn3C1bhoy Wg/TjSshiYOaqCdVir9ciDQ3PmAdTvWA2bMZevLswtW9a5ISeyWKQQwVstah+dxijHDb 9hdp1MFCubiz19lKEsyucKx3J+glghOgksi92YBcMF0zbjEW2OAtbLKL4FQ+p8FteuQd HKAA== X-Gm-Message-State: AAQBX9dQ7wcFV3wzcJ798P70l8XsacK/JNtjXXEeKW2T5YCPtkz+74QN rLsT7Pd96zWjui1UsiSShnNxlWAEerjwtfnik94RrQ== X-Google-Smtp-Source: AKy350bOTqaVxEpTcP67CNsx8X2ssdPPMNdle5226OtuJs2O3NM9eEZEYxvnkXkexcXw3VXWkIb866S9ESzepzax85Y= X-Received: by 2002:a2e:a0c7:0:b0:29e:e7b7:dfd1 with SMTP id f7-20020a2ea0c7000000b0029ee7b7dfd1mr4706373ljm.6.1680013847226; Tue, 28 Mar 2023 07:30:47 -0700 (PDT) MIME-Version: 1.0 References: <20230328142302.3824535-1-jiawei@iscas.ac.cn> In-Reply-To: <20230328142302.3824535-1-jiawei@iscas.ac.cn> From: Kito Cheng Date: Tue, 28 Mar 2023 22:30:35 +0800 Message-ID: Subject: Re: [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc. To: Jiawei Cc: gcc-patches@gcc.gnu.org, palmer@dabbelt.com, christoph.muellner@vrull.eu, wuwei2016@iscas.ac.cn Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-10.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,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: I would prefer those checking happened in riscv_subset_list::parse@gcc/common/config/riscv/riscv-common.cc that could be reused when we adding target attribute. And I plan integrate the arch-canonicalize script to just reusing whole arch string parser in GCC 14, so it would be great to have all check within riscv_subset_list::parse On Tue, Mar 28, 2023 at 10:23=E2=80=AFPM Jiawei wrote: > > Z*inx is conflict with float extensions, add incompatible check when > z*inx and hard_float both enabled. > > gcc/ChangeLog: > > * config/riscv/riscv.cc (riscv_option_override): New check. > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/arch-19.c: New test. > > --- > gcc/config/riscv/riscv.cc | 4 ++++ > gcc/testsuite/gcc.target/riscv/arch-19.c | 4 ++++ > 2 files changed, 8 insertions(+) > create mode 100644 gcc/testsuite/gcc.target/riscv/arch-19.c > > diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc > index 76eee4a55e9..162ba14d3c7 100644 > --- a/gcc/config/riscv/riscv.cc > +++ b/gcc/config/riscv/riscv.cc > @@ -6285,6 +6285,10 @@ riscv_option_override (void) > && riscv_abi !=3D ABI_LP64 && riscv_abi !=3D ABI_ILP32E) > error ("z*inx requires ABI ilp32, ilp32e or lp64"); > > + // Zfinx is conflict with float extensions. > + if (TARGET_ZFINX && TARGET_HARD_FLOAT) > + error ("z*inx is conflict with float extensions"); > + > /* We do not yet support ILP32 on RV64. */ > if (BITS_PER_WORD !=3D POINTER_SIZE) > error ("ABI requires %<-march=3Drv%d%>", POINTER_SIZE); > diff --git a/gcc/testsuite/gcc.target/riscv/arch-19.c b/gcc/testsuite/gcc= .target/riscv/arch-19.c > new file mode 100644 > index 00000000000..a6f72af3677 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/arch-19.c > @@ -0,0 +1,4 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=3Drv64if_zfinx -mabi=3Dlp64" } */ > +int foo() {} > +/* { dg-error "z*inx is conflict with float extensions" "" { target *-*-= * } 0 } */ > -- > 2.25.1 >