-
-
Notifications
You must be signed in to change notification settings - Fork 14.3k
Don't compute FnAbi for LLVM intrinsics in backends #150768
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
base: main
Are you sure you want to change the base?
Conversation
|
These commits modify compiler targets. Some changes occurred in compiler/rustc_codegen_gcc |
|
r? @wesleywiser rustbot has assigned @wesleywiser. Use |
This comment has been minimized.
This comment has been minimized.
fb63e0c to
af005a9
Compare
This comment has been minimized.
This comment has been minimized.
e48fbd3 to
b05795a
Compare
This comment has been minimized.
This comment has been minimized.
b05795a to
83e77ec
Compare
This comment has been minimized.
This comment has been minimized.
83e77ec to
f1ab003
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
I've removed the removal of computing an |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot @bjorn3 ❤️
| } | ||
| _ => unreachable!(), | ||
| }; | ||
| assert!(!fn_sig.c_variadic); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why this assertion? I mean I get the point that there are very few LLVM intrinsics that use vararg arguments, but I don't get what exactly fails for vararg functions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because varargs are not handled. For varargs the LLVM function signature must only contain the non-varargs + an indication that the function is a vararg. Given that afaik we don't currently use any LLVM intrinsics that use varargs, I didn't implement that.
This removes support forextern "unadjusted"for anything other than LLVM intrinsics. It only makes sense in the context of calling LLVM intrinsics anyway as it exposes the way the LLVM backend internally represents types. Perhaps it should be renamed toextern "llvm-intrinsic"?Follow up to #148533