-
Notifications
You must be signed in to change notification settings - Fork 22
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
indirect calls are always used (LLVM-321) #90
Comments
for my use case, it's ok to manually adding attributes at IR level. eg. xtensa-short-call. |
We're working on implementing the support for direct calls, the same way gcc does it. That is a bit more complex. In the mean time we can implement |
hi, @sstefan1, can I ask the progress for this feature? |
There hasn't been any real progress since that coment. I'll write here when I have some updates. |
is that fixed by https://github.com/espressif/llvm-project/releases/tag/esp-17.0.1_20240408? |
the short-call attribute is already in the releases and it seems working as far as i tested. |
Yes, exactly. Automatic use of short/long calls is in progress. |
Just bumped into this myself. Is there no support for at least changing the default e.g. ("-mno-longcalls")? The range of a CALLx instruction is +/- 512k, which is quite a bit larger than the .text segment of many/most firmware images in the wild. Right now the conservative default is a pretty severe performance regression, and it's needless for a lot of applications. |
@andyross , thank you for the question. Currently we work on implementing CALLX support in the LLD. |
currently, -mlongcalls is always effectively on.
i had to patch llvm for my use case. cf. yamt@3f04244
it would be nicer to have a way to use direct calls.
ideally, the backend can automatically choose direct calls when the call distance is not too long, i guess.
related:
bytecodealliance/wasm-micro-runtime#3141
bytecodealliance/wasm-micro-runtime#3142
The text was updated successfully, but these errors were encountered: