On 1/8/24 06:47, Kito Cheng wrote:
Do you know how to build a ISA string with following extension?
- g
- c
- zba
- zbs
- svnapot
- zve64d
- zvl128b
Don't trial and error with your gcc and don't read RISC-V ISA spec! OK, I
believe it's impossible for most people, even I work for RISC-V so many years,
I remember most of the rule of the the canonical order, it's still hard to
order that right in short time...
So I think it's time to relax that for the -march string inputs, since we have
so many extension today, but we still keep the canonicalization within the
compiler, because we need that to handle multi-lib and also it's easier to
compare different ISA string.
This patch break into serveral part:
1) Small refactor patch
2) Change the way of parsing ISA string.
3) Remove unused functions
4) Update test cases
5) Update document
Just because something is hard doesn't necessarily mean we should avoid it.
A great example would be strict aliasing. I'd bet that 90% of C/C++
developers would get something wrong in this space. Similarly for
oddities of FP arithmetic.
My biggest worry is consistency across various tools. It's rather lame
if GCC were on an island by itself either in being too strict or too loose.
So where are the other key tools in this regard? Are we an outlier
right now or will this patch make us an outlier?
jeff