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