public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc.
@ 2023-03-28 14:23 Jiawei
  2023-03-28 14:30 ` Kito Cheng
  2023-04-04  1:46 ` Hans-Peter Nilsson
  0 siblings, 2 replies; 5+ messages in thread
From: Jiawei @ 2023-03-28 14:23 UTC (permalink / raw)
  To: gcc-patches; +Cc: kito.cheng, palmer, christoph.muellner, wuwei2016, Jiawei

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 != ABI_LP64 && riscv_abi != 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 != POINTER_SIZE)
     error ("ABI requires %<-march=rv%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=rv64if_zfinx -mabi=lp64" } */
+int foo() {}
+/* { dg-error "z*inx is conflict with float extensions" "" { target *-*-* } 0 } */
-- 
2.25.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc.
  2023-03-28 14:23 [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc Jiawei
@ 2023-03-28 14:30 ` Kito Cheng
  2023-04-04  1:46 ` Hans-Peter Nilsson
  1 sibling, 0 replies; 5+ messages in thread
From: Kito Cheng @ 2023-03-28 14:30 UTC (permalink / raw)
  To: Jiawei; +Cc: gcc-patches, palmer, christoph.muellner, wuwei2016

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 PM Jiawei <jiawei@iscas.ac.cn> 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 != ABI_LP64 && riscv_abi != 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 != POINTER_SIZE)
>      error ("ABI requires %<-march=rv%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=rv64if_zfinx -mabi=lp64" } */
> +int foo() {}
> +/* { dg-error "z*inx is conflict with float extensions" "" { target *-*-* } 0 } */
> --
> 2.25.1
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc.
  2023-03-28 14:23 [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc Jiawei
  2023-03-28 14:30 ` Kito Cheng
@ 2023-04-04  1:46 ` Hans-Peter Nilsson
  2023-04-05  1:30   ` Jeff Law
  1 sibling, 1 reply; 5+ messages in thread
From: Hans-Peter Nilsson @ 2023-04-04  1:46 UTC (permalink / raw)
  To: Jiawei; +Cc: gcc-patches, kito.cheng, palmer, christoph.muellner, wuwei2016

On Tue, 28 Mar 2023, Jiawei wrote:

> +  // Zfinx is conflict with float extensions.
> +  if (TARGET_ZFINX && TARGET_HARD_FLOAT)
> +    error ("z*inx is conflict with float extensions");
> +

While I'm not a native English speaker, "is conflict with" 
doesn't sound grammatically correct.  Perhaps "conflicts with" 
or "is in conflict with"?

brgds, H-P

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc.
  2023-04-04  1:46 ` Hans-Peter Nilsson
@ 2023-04-05  1:30   ` Jeff Law
  2023-04-06  2:56     ` jiawei
  0 siblings, 1 reply; 5+ messages in thread
From: Jeff Law @ 2023-04-05  1:30 UTC (permalink / raw)
  To: Hans-Peter Nilsson, Jiawei
  Cc: gcc-patches, kito.cheng, palmer, christoph.muellner, wuwei2016



On 4/3/23 19:46, Hans-Peter Nilsson wrote:
> On Tue, 28 Mar 2023, Jiawei wrote:
> 
>> +  // Zfinx is conflict with float extensions.
>> +  if (TARGET_ZFINX && TARGET_HARD_FLOAT)
>> +    error ("z*inx is conflict with float extensions");
>> +
> 
> While I'm not a native English speaker, "is conflict with"
> doesn't sound grammatically correct.  Perhaps "conflicts with"
> or "is in conflict with"?
"conflicts with" is better.

Jeff


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Re: [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc.
  2023-04-05  1:30   ` Jeff Law
@ 2023-04-06  2:56     ` jiawei
  0 siblings, 0 replies; 5+ messages in thread
From: jiawei @ 2023-04-06  2:56 UTC (permalink / raw)
  To: Jeff Law
  Cc: Hans-Peter Nilsson, gcc-patches, kito.cheng, palmer,
	christoph.muellner, wuwei2016




&gt; -----原始邮件-----
&gt; 发件人: "Jeff Law" <jeffreyalaw@gmail.com>
&gt; 发送时间: 2023-04-05 09:30:43 (星期三)
&gt; 收件人: "Hans-Peter Nilsson" <hp@bitrange.com>, Jiawei <jiawei@iscas.ac.cn>
&gt; 抄送: gcc-patches@gcc.gnu.org, kito.cheng@sifive.com, palmer@dabbelt.com, christoph.muellner@vrull.eu, wuwei2016@iscas.ac.cn
&gt; 主题: Re: [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc.
&gt; 
&gt; 
&gt; 
&gt; On 4/3/23 19:46, Hans-Peter Nilsson wrote:
&gt; &gt; On Tue, 28 Mar 2023, Jiawei wrote:
&gt; &gt; 
&gt; &gt;&gt; +  // Zfinx is conflict with float extensions.
&gt; &gt;&gt; +  if (TARGET_ZFINX &amp;&amp; TARGET_HARD_FLOAT)
&gt; &gt;&gt; +    error ("z*inx is conflict with float extensions");
&gt; &gt;&gt; +
&gt; &gt; 
&gt; &gt; While I'm not a native English speaker, "is conflict with"
&gt; &gt; doesn't sound grammatically correct.  Perhaps "conflicts with"
&gt; &gt; or "is in conflict with"?
&gt; "conflicts with" is better.
&gt; 
&gt; Jeff

Thanks for your reply, fixed in the trunk.

BR,
Jiawei</jiawei@iscas.ac.cn></hp@bitrange.com></jeffreyalaw@gmail.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-04-06  2:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-28 14:23 [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc Jiawei
2023-03-28 14:30 ` Kito Cheng
2023-04-04  1:46 ` Hans-Peter Nilsson
2023-04-05  1:30   ` Jeff Law
2023-04-06  2:56     ` jiawei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).