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

Add support for Xtensa embedded llvm target #1297

Open
xfcasio opened this issue Aug 3, 2024 · 8 comments
Open

Add support for Xtensa embedded llvm target #1297

xfcasio opened this issue Aug 3, 2024 · 8 comments
Labels
Enhancement Request New feature or request Revisit later Revisit this issue at a later point

Comments

@xfcasio
Copy link

xfcasio commented Aug 3, 2024

request to add support for the Xtensa llvm embedded target (for esp development boards)

@lerno lerno added Enhancement Request New feature or request Revisit later Revisit this issue at a later point labels Aug 3, 2024
@lerno
Copy link
Collaborator

lerno commented Aug 3, 2024

This is currently blocked due to LLVM support of Xtensa is not completely merged yet. This might happen in LLVM 20

@kassane
Copy link

kassane commented Aug 10, 2024

This is currently blocked due to LLVM support of Xtensa is not completely merged yet. This might happen in LLVM 20

Q: What is xtensa's relevance for most users?
A: esp32 (legacy)!

I have my doubts about that. Maybe LLVM 30+!!
Xtensa for LLVM is experimental (generic cpu-features only). Currently need espressif-fork for esp8266, esp32 & esp32-S[2|3].

upstream:
https://github.com/llvm/llvm-project/blob/master/llvm/lib/Target/Xtensa/Xtensa.td
espressif/llvm
https://github.com/espressif/llvm-project/blob/xtensa_release_18.1.2/llvm/lib/Target/Xtensa/Xtensa.td

References

@kassane
Copy link

kassane commented Aug 10, 2024

My simple test (picsimlab/espressif-QEMU)

# static c3c compiler
c3c --version
C3 Compiler Version:       0.6.2 (prerelease)
Installed directory:       /home/kassane/.local/bin/
LLVM version:              18.1.2
LLVM default target:       x86_64-linux-musl

image

@lerno
Copy link
Collaborator

lerno commented Aug 10, 2024

So what do you advice here?

@kassane
Copy link

kassane commented Aug 10, 2024

So what do you advice here?

My proposal is to continue the development of xtensa support, focusing on esp32-devices (primary purpose for espressif users).

Note: New espressif devices, now replacing xtensa to risc-v32 (no SIMD/Vector). Old xtensa (esp32/S[2|3] legacy) for higher performance.

Add c3c using espressif/llvm backend artifact in the CI (no impacting upstream artifacts). This will make upstream c3c accessible without forking (like, esp-rs).

@lerno
Copy link
Collaborator

lerno commented Aug 10, 2024

So like a special espressif c3c version?

@kassane
Copy link

kassane commented Aug 10, 2024

So like a special espressif c3c version?

esp32 support only!
The other upstream targets will remain unchanged.

@kassane

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement Request New feature or request Revisit later Revisit this issue at a later point
Projects
None yet
Development

No branches or pull requests

3 participants