Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[topic-clang] Add LLVM RISC-V multi-libs #839

Merged
merged 9 commits into from
Nov 26, 2024

Conversation

stephanosio
Copy link
Member

@stephanosio stephanosio commented Nov 25, 2024

Add RV32I, RV32E and RV64I "common" multi-libs, based on the list of Zephyr GCC RISC-V multi-libs.

This commit pulls the LLVM patch that enables `multilib.yaml` support
for the RISC-V architecture.

Note that the hard-coded RISC-V multi-lib selection logic was
unconditionally used prior to this patch.

Signed-off-by: Stephanos Ioannidis <[email protected]>
@stephanosio stephanosio mentioned this pull request Nov 25, 2024
12 tasks
@stephanosio stephanosio changed the title Add RISC-V multi-libs [topic-clang] Add LLVM RISC-V multi-libs Nov 25, 2024
@stephanosio stephanosio force-pushed the llvm_riscv_2 branch 4 times, most recently from 8c44d0a to cfe1da4 Compare November 25, 2024 04:21
This commit adds the following "common" RV32I multi-lib variants, based
on the list of the GCC RV32I multi-libs (gcc/config/riscv/t-zephyr):

rv32i_zicsr_zifencei/ilp32
rv32im_zicsr_zifencei/ilp32
rv32im_zicsr_zifencei_zba_zbb_zbc_zbs/ilp32
rv32imac_zicsr_zifencei/ilp32
rv32imafc_zicsr_zifencei/ilp32f
rv32imfc_zicsr_zifencei/ilp32f
rv32imafd_zicsr_zifencei/ilp32d
rv32if_zicsr_zifencei/ilp32f

Signed-off-by: Stephanos Ioannidis <[email protected]>
This commit adds the following "common" RV32E multi-lib variants, based
on the list of the GCC RV32E multi-libs (gcc/config/riscv/t-zephyr):

rv32e_zicsr_zifencei/ilp32e
rv32em_zicsr_zifencei/ilp32e
rv32emc_zicsr_zifencei/ilp32e
rv32emc_zicsr_zifencei_zba_zbb_zbc_zbs/ilp32e
rv32emc_zicsr/ilp32e
rv32emc_zicsr_zba_zbb_zbc_zbs/ilp32e

Signed-off-by: Stephanos Ioannidis <[email protected]>
This commit adds the following "common" RV64I multi-lib variants, based
on the list of the GCC RV64I multi-libs (gcc/config/riscv/t-zephyr):

rv64i_zicsr_zifencei/lp64
rv64im_zicsr_zifencei/lp64
rv64im_zicsr_zifencei_zba_zbb_zbc_zbs/lp64
rv64imac_zicsr_zifencei/lp64
rv64imac_zicsr_zifencei_zba_zbb_zbc_zbs/lp64
rv64imafdc_zicsr_zifencei/lp64d
rv64imafd_zicsr_zifencei/lp64d
rv64imfc_zicsr_zifencei/lp64f
rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs/lp64f

Signed-off-by: Stephanos Ioannidis <[email protected]>
LLVM compiler-rt does not currently support exceptions and rounding
modes for computations on the types that are emulated in software.

For more details, refer to the GitHub issue zephyrproject-rtos#838.

Revert this commit when this issue is fixed in the compiler-rt.

Signed-off-by: Stephanos Ioannidis <[email protected]>
This commit updates the CMake target specification to handle the RISC-V
architecture.

Signed-off-by: Stephanos Ioannidis <[email protected]>
This commit adds the alternate RV32I multi-lib mappings, based on the
list of the GCC RV32I multi-lib mappings (gcc/config/riscv/t-zephyr).

Signed-off-by: Stephanos Ioannidis <[email protected]>
This commit adds the alternate RV32E multi-lib mappings, based on the
list of the GCC RV32E multi-lib mappings (gcc/config/riscv/t-zephyr).

Signed-off-by: Stephanos Ioannidis <[email protected]>
@stephanosio
Copy link
Member Author

This commit adds the alternate RV64I multi-lib mappings, based on the
list of the GCC RV64I multi-lib mappings (gcc/config/riscv/t-zephyr).

Signed-off-by: Stephanos Ioannidis <[email protected]>
@stephanosio stephanosio marked this pull request as ready for review November 25, 2024 20:48
@stephanosio stephanosio merged commit 29ab797 into zephyrproject-rtos:topic-clang Nov 26, 2024
40 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant