LLVM Bugzilla is read-only and represents the historical archive of all LLVM issues filled before November 26, 2021. Use github to submit LLVM bugs

Bug 2095 - [meta] Multiple return value support
Summary: [meta] Multiple return value support
Status: RESOLVED FIXED
Alias: None
Product: libraries
Classification: Unclassified
Component: Core LLVM classes (show other bugs)
Version: 2.2
Hardware: PC All
: P enhancement
Assignee: Unassigned LLVM Bugs
URL:
Keywords: new-feature
Depends on: 2094
Blocks:
  Show dependency tree
 
Reported: 2008-02-26 00:06 PST by Chris Lattner
Modified: 2008-04-29 00:57 PDT (History)
3 users (show)

See Also:
Fixed By Commit(s):


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Lattner 2008-02-26 00:06:06 PST
We need:

1) support in llvm IR to represent multiple return values
2) optimizations updated to not die in the face of MRVs
3) something that generates MRVs, I'd suggest enhancing arg promotion to promote results to use them.
4) generic codegen support for MRVs including using the CallingConv.td support
5) target-specific support for them, as appropriate, such as support for the x86-64 calling conv stuff
6) enhance inline asm to have result register values returned as an extra result instead of using "=*r" constraints (Bug 2094).
Comment 1 Devang Patel 2008-03-19 17:16:47 PDT
1), 2) and 3) are done now.
Comment 2 Chris Lattner 2008-04-26 18:40:28 PDT
This is all done except #6.  Also, MRVs in their full generality aren't supported by all targets.
Comment 3 Chris Lattner 2008-04-29 00:57:02 PDT
#6 is done.