Message ID | bf7d8dd1e21c7f55295409d436967dfceffa887a.1650777879.git.research_trasio@irq.a4lg.com |
---|---|
State | New |
Headers | show |
Series | RISC-V: Fix canonical extension order (K and J) | expand |
Neither K nor J is an extension that exists, and so it doesn't make sense to mandate any particular ordering. The better change would be to delete the letters `k' and `j' from that string, so that we aren't enforcing constraints that don't serve a useful purpose. cf. https://github.com/riscv/riscv-isa-manual/commit/f5f9c27010b69a015958ffebe1ac5a34f8776dff On Sat, Apr 23, 2022 at 10:26 PM Tsukasa OI via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > This commit fixes canonical extension order to follow the RISC-V ISA > Manual draft-20210402-1271737 or later. > > gcc/ChangeLog: > > * common/config/riscv/riscv-common.cc (riscv_supported_std_ext): > Fix "K" extension prefix to be placed before "J". > --- > gcc/common/config/riscv/riscv-common.cc | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc > index 1501242e296..0b0ec2c4ec5 100644 > --- a/gcc/common/config/riscv/riscv-common.cc > +++ b/gcc/common/config/riscv/riscv-common.cc > @@ -594,7 +594,7 @@ riscv_subset_list::lookup (const char *subset, int major_version, > static const char * > riscv_supported_std_ext (void) > { > - return "mafdqlcbjktpvn"; > + return "mafdqlcbkjtpvn"; > } > > /* Parsing subset version. > -- > 2.32.0 >
Hello, > Neither K nor J is an extension that exists, That is correct. > and so it doesn't make > sense to mandate any particular ordering. No. It affects Z* extension ordering... On 2022/04/24 14:36, Andrew Waterman wrote: > Neither K nor J is an extension that exists, and so it doesn't make > sense to mandate any particular ordering. The better change would be > to delete the letters `k' and `j' from that string, so that we aren't > enforcing constraints that don't serve a useful purpose. > > cf. https://github.com/riscv/riscv-isa-manual/commit/f5f9c27010b69a015958ffebe1ac5a34f8776dff Wait... so, you make constraints for existing single-letters (Zi -> Zv) but not for non-existing single-letters? (Zk -> Zj, Zj -> Zk) anymore? That's completely unexpected move but also makes sense. Let me check your intentions and details: do we need to place Z[CH]* extensions without single-letter extension [CH] after all existing ones (like Zv*)? Or, Z[CH]* extensions without single-letter extension [CH] have no constraints as long as all Z* extensions are grouped together? > > On Sat, Apr 23, 2022 at 10:26 PM Tsukasa OI via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: >> >> This commit fixes canonical extension order to follow the RISC-V ISA >> Manual draft-20210402-1271737 or later. >> >> gcc/ChangeLog: >> >> * common/config/riscv/riscv-common.cc (riscv_supported_std_ext): >> Fix "K" extension prefix to be placed before "J". >> --- >> gcc/common/config/riscv/riscv-common.cc | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc >> index 1501242e296..0b0ec2c4ec5 100644 >> --- a/gcc/common/config/riscv/riscv-common.cc >> +++ b/gcc/common/config/riscv/riscv-common.cc >> @@ -594,7 +594,7 @@ riscv_subset_list::lookup (const char *subset, int major_version, >> static const char * >> riscv_supported_std_ext (void) >> { >> - return "mafdqlcbjktpvn"; >> + return "mafdqlcbkjtpvn"; >> } >> >> /* Parsing subset version. >> -- >> 2.32.0 >> >
> > and so it doesn't make > > sense to mandate any particular ordering. > > No. It affects Z* extension ordering... +1, we really need the order in ISA spec so that we could know the canonical order for z* exts.
diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc index 1501242e296..0b0ec2c4ec5 100644 --- a/gcc/common/config/riscv/riscv-common.cc +++ b/gcc/common/config/riscv/riscv-common.cc @@ -594,7 +594,7 @@ riscv_subset_list::lookup (const char *subset, int major_version, static const char * riscv_supported_std_ext (void) { - return "mafdqlcbjktpvn"; + return "mafdqlcbkjtpvn"; } /* Parsing subset version.