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

Reply via email to