-
Notifications
You must be signed in to change notification settings - Fork 13.3k
arm: no warning when requested ABI cannot be realized due to missing target features #121387
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
Labels
Comments
@llvm/issue-subscribers-backend-aarch64 Author: Ralf Jung (RalfJung)
On RISCV, when I build code with `llc -mtriple=riscv32 -mattr=-f -target-abi=ilp32f`, I [get a nice warning](https://llvm.godbolt.org/z/W5hvMra96) letting me know that this is a nonsensical combination:
```
Hard-float 'f' ABI can't be used for a target that doesn't support the F instruction set extension (ignoring target-abi)
```
However, when I do something equivalent on ARM, such as `-mtriple=armv8 -float-abi=hard -mattr=-fpregs`, then sadly [there is no warning](https://llvm.godbolt.org/z/xaETffao7). Instead, LLVM silently ignores `-float-abi` and passes float arguments via the `rX` registers -- easily leading to a lot of head-scratching and confusion down the road when functions don't have the ABI that one might expect.
|
This is for the 32bit arm backend, not aarch64... Did the bot mix those up or are they maintained together?
|
@llvm/issue-subscribers-backend-arm Author: Ralf Jung (RalfJung)
On RISCV, when I build code with `llc -mtriple=riscv32 -mattr=-f -target-abi=ilp32f`, I [get a nice warning](https://llvm.godbolt.org/z/W5hvMra96) letting me know that this is a nonsensical combination:
```
Hard-float 'f' ABI can't be used for a target that doesn't support the F instruction set extension (ignoring target-abi)
```
However, when I do something equivalent on ARM, such as `-mtriple=armv8 -float-abi=hard -mattr=-fpregs`, then sadly [there is no warning](https://llvm.godbolt.org/z/xaETffao7). Instead, LLVM silently ignores `-float-abi` and passes float arguments via the `rX` registers -- easily leading to a lot of head-scratching and confusion down the road when functions don't have the ABI that one might expect.
|
Ah, this is probably a duplicate of #110383, I just forgot that that already existed. |
Closing as duplicate of #110383 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
On RISCV, when I build code with
llc -mtriple=riscv32 -mattr=-f -target-abi=ilp32f
, I get a nice warning letting me know that this is a nonsensical combination:However, when I do something equivalent on ARM, such as
-mtriple=armv8 -float-abi=hard -mattr=-fpregs
, then sadly there is no warning. Instead, LLVM silently ignores-float-abi
and passes float arguments via therX
registers -- easily leading to a lot of head-scratching and confusion down the road when functions don't have the ABI that one might expect.The text was updated successfully, but these errors were encountered: