[clang] [llvm] [RISCV] CodeGen of RVE and ilp32e/lp64e ABIs (PR #76777)

via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 4 23:56:20 PST 2024


koute wrote:

> As for your diffs, it seems that you only handle the `__riscv_save/restore_[2|1|0]`, which is incomplete. And the code is not different with non-rve cases?

Yes, I mostly copy-pasted the existing code and removed all of the code dealing with registers not available on RV32E, so having only `__riscv_save/restore_[2|1|0]` is intended I suppose because there are only this many saved registers on RV32E. (There's probably a better way of doing it, and it looks like I screwed up the RV64E part of the patch.)

If I remember correctly I think I did this because otherwise compiling `compiler-rt` was not possible for RV32E and the compilation was spewing out errors about the unavailable registers? But I need to check this again once I finish porting this newest version of the patch to the most recent version of Rust.

https://github.com/llvm/llvm-project/pull/76777


More information about the cfe-commits mailing list