asb added a comment.

Thanks Philip. I started looking at this too, and agree that something like 
this is a good next step. I've been looking more closely at the GCC behaviour 
and noticed a couple of things that might be of interest:

- `-march=rv64gc` results 
in`rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0`, but 
`-march=rv64imafdc` results in `rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0`
- `-march=rv64i2p0_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0` results in 
`rv64i2p0_m2p0_a2p1_f2p2_d2p2_c2p0` (i.e. the zicsr and zifencei are silently 
dropped)

The strategy proposed in this patch seems sensible to me, unless someone can 
see a good reason I'm missing to try to go more down the route gcc took and to 
rewrite the -march string?

I'm looking at the case now of LLD erroring out when linking a .o specifying 
I2.1, which I think was unintentional and a regression from 15.0.x to 16.0.x. 
Similar with llvm-objdump refusing to try disassembling a file with I2.1, which 
is probably more user hostile than we'd like.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D143953/new/

https://reviews.llvm.org/D143953

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to