* [PATCH] RISC-V: Add Z*inx incompatible check in gcc. @ 2023-03-26 8:34 Jiawei 2023-03-27 8:15 ` Kito Cheng 0 siblings, 1 reply; 4+ messages in thread From: Jiawei @ 2023-03-26 8:34 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/config/riscv/riscv.cc | 4 ++++ 1 file changed, 4 insertions(+) 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); -- 2.25.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] RISC-V: Add Z*inx incompatible check in gcc. 2023-03-26 8:34 [PATCH] RISC-V: Add Z*inx incompatible check in gcc Jiawei @ 2023-03-27 8:15 ` Kito Cheng 2023-03-28 14:36 ` Re: [PATCH v2] RISC-V: Add Z*inx imcompatible " jiawei 0 siblings, 1 reply; 4+ messages in thread From: Kito Cheng @ 2023-03-27 8:15 UTC (permalink / raw) To: Jiawei; +Cc: gcc-patches, kito.cheng, palmer, christoph.muellner, wuwei2016 HI Jiawei: Thanks for the fix! Two comments: - Could you add testcase like https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/gcc.target/riscv/arch-12.c - And I would prefer those check happened in riscv_subset_list::parse @gcc/common/config/riscv/riscv-common.cc On Sun, Mar 26, 2023 at 4:36 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/config/riscv/riscv.cc | 4 ++++ > 1 file changed, 4 insertions(+) > > 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); > -- > 2.25.1 > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Re: [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc. 2023-03-27 8:15 ` Kito Cheng @ 2023-03-28 14:36 ` jiawei 2023-03-28 14:43 ` Kito Cheng 0 siblings, 1 reply; 4+ messages in thread From: jiawei @ 2023-03-28 14:36 UTC (permalink / raw) To: Kito Cheng; +Cc: gcc-patches, kito.cheng, palmer, christoph.muellner, wuwei2016 Hi Kito, Thanks for your sugestions, I had added the new testcases in the new patch. I feel it's hard to check long string name extension by use riscv_subset_list::parse, Since it just check one char when the pointer moving, So I still keep the implement by check the extenstison with target. Maybe we can add new check function in the new version :) > -----原始邮件----- > 发件人: "Kito Cheng" <kito.cheng@gmail.com> > 发送时间: 2023-03-27 16:15:00 (星期一) > 收件人: Jiawei <jiawei@iscas.ac.cn> > 抄送: gcc-patches@gcc.gnu.org, kito.cheng@sifive.com, palmer@dabbelt.com, christoph.muellner@vrull.eu, wuwei2016@iscas.ac.cn > 主题: Re: [PATCH] RISC-V: Add Z*inx incompatible check in gcc. > > HI Jiawei: > > Thanks for the fix! > > Two comments: > - Could you add testcase like > https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/gcc.target/riscv/arch-12.c > - And I would prefer those check happened in riscv_subset_list::parse > @gcc/common/config/riscv/riscv-common.cc > > On Sun, Mar 26, 2023 at 4:36 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/config/riscv/riscv.cc | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > 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); > > -- > > 2.25.1 > > </jiawei@iscas.ac.cn></jiawei@iscas.ac.cn></kito.cheng@gmail.com> ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Re: [PATCH v2] RISC-V: Add Z*inx imcompatible check in gcc. 2023-03-28 14:36 ` Re: [PATCH v2] RISC-V: Add Z*inx imcompatible " jiawei @ 2023-03-28 14:43 ` Kito Cheng 0 siblings, 0 replies; 4+ messages in thread From: Kito Cheng @ 2023-03-28 14:43 UTC (permalink / raw) To: jiawei; +Cc: gcc-patches, kito.cheng, palmer, christoph.muellner, wuwei2016 Maybe something like this? diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc index acfd7b92563..aa7edc8cfec 100644 --- a/gcc/common/config/riscv/riscv-common.cc +++ b/gcc/common/config/riscv/riscv-common.cc @@ -1155,6 +1155,10 @@ riscv_subset_list::parse (const char *arch, location_t loc) subset_list->handle_combine_ext (); + if (subset_list->lookup("zfinx") && subset_list->lookup("f")) + error_at (loc, "%<-march=%s%>: z*inx is conflict with float extensions", + arch); + return subset_list; fail: On Tue, Mar 28, 2023 at 10:36 PM <jiawei@iscas.ac.cn> wrote: > > Hi Kito, > > Thanks for your sugestions, I had added the new testcases in the new patch. > I feel it's hard to check long string name extension by use riscv_subset_list::parse, > Since it just check one char when the pointer moving, So I still keep the implement > by check the extenstison with target. Maybe we can add new check function in the new > version :) > > > > -----原始邮件----- > > 发件人: "Kito Cheng" <kito.cheng@gmail.com> > > 发送时间: 2023-03-27 16:15:00 (星期一) > > 收件人: Jiawei <jiawei@iscas.ac.cn> > > 抄送: gcc-patches@gcc.gnu.org, kito.cheng@sifive.com, palmer@dabbelt.com, christoph.muellner@vrull.eu, wuwei2016@iscas.ac.cn > > 主题: Re: [PATCH] RISC-V: Add Z*inx incompatible check in gcc. > > > > HI Jiawei: > > > > Thanks for the fix! > > > > Two comments: > > - Could you add testcase like > > https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/gcc.target/riscv/arch-12.c > > - And I would prefer those check happened in riscv_subset_list::parse > > @gcc/common/config/riscv/riscv-common.cc > > > > On Sun, Mar 26, 2023 at 4:36 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/config/riscv/riscv.cc | 4 ++++ > > > 1 file changed, 4 insertions(+) > > > > > > 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); > > > -- > > > 2.25.1 > > > > </jiawei@iscas.ac.cn></jiawei@iscas.ac.cn></kito.cheng@gmail.com> ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-03-28 14:43 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-03-26 8:34 [PATCH] RISC-V: Add Z*inx incompatible check in gcc Jiawei 2023-03-27 8:15 ` Kito Cheng 2023-03-28 14:36 ` Re: [PATCH v2] RISC-V: Add Z*inx imcompatible " jiawei 2023-03-28 14:43 ` Kito Cheng
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).