-
Notifications
You must be signed in to change notification settings - Fork 13k
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
CodeGen should support arbitrary return types #3032
Comments
This is due to a limitation in CodeGen. Currently, for aggregate return values, It's likely that you're working with an ABI that defines only 2 registers for The general fix is to add support in CodeGen for rewriting the code to return For this particular testcase on targets like x86-64, the C ABI may have Alternatively, you can work around this in your front-end by using the |
Dan, do we have a bugzilla for "codegen doesn't support arbitrary aggregate result types" yet? If not, please repurpose this one, otherwise please close this as a dupe, thanks! |
Re-title this bugzilla entry. |
*** Bug #2691 has been marked as a duplicate of this bug. *** |
*** Bug #2584 has been marked as a duplicate of this bug. *** |
*** Bug #1937 has been marked as a duplicate of this bug. *** |
*** Bug #2044 has been marked as a duplicate of this bug. *** |
*** Bug llvm/llvm-bugzilla-archive#3318 has been marked as a duplicate of this bug. *** |
The 2.4 release notes claim "full support" for first-class aggregates, so perhaps they should be amended. It's frustrating to learn about limitations this way. It might also be helpful to mention this limitation in the section on function types in the language reference manual, which gives an example of a two-word aggregate return value. |
I added a note about this to LangRef.html. |
*** Bug llvm/llvm-bugzilla-archive#3388 has been marked as a duplicate of this bug. *** |
*** Bug llvm/llvm-bugzilla-archive#3397 has been marked as a duplicate of this bug. *** |
*** Bug llvm/llvm-bugzilla-archive#3736 has been marked as a duplicate of this bug. *** |
*** Bug llvm/llvm-bugzilla-archive#4110 has been marked as a duplicate of this bug. *** |
*** Bug llvm/llvm-bugzilla-archive#4773 has been marked as a duplicate of this bug. *** |
*** Bug llvm/llvm-bugzilla-archive#5070 has been marked as a duplicate of this bug. *** |
*** Bug llvm/llvm-bugzilla-archive#6439 has been marked as a duplicate of this bug. *** |
Kenneth Uildriks implemented target-independent infrastructure, and x86/x86-64 support for this. |
*** Bug llvm/llvm-bugzilla-archive#6547 has been marked as a duplicate of this bug. *** |
mentioned in issue llvm/llvm-bugzilla-archive#3318 |
mentioned in issue llvm/llvm-bugzilla-archive#3388 |
mentioned in issue llvm/llvm-bugzilla-archive#3397 |
mentioned in issue llvm/llvm-bugzilla-archive#3736 |
mentioned in issue llvm/llvm-bugzilla-archive#4110 |
mentioned in issue llvm/llvm-bugzilla-archive#4773 |
mentioned in issue llvm/llvm-bugzilla-archive#5070 |
mentioned in issue llvm/llvm-bugzilla-archive#6439 |
mentioned in issue llvm/llvm-bugzilla-archive#6547 |
Conditionally disable SVE extension support in LLDB's NativeRegisterC…
This already works by implicitly converting types that don't fit in registers to sret |
Extended Description
I've been using the new first-class aggregate support quite a bit, and I ran into a crash bug. I've isolated a small test case which I will attach. This is on the latest trunk from August 10.
The text was updated successfully, but these errors were encountered: