http://llvm.org/bugs/show_bug.cgi?id=2560

           Summary: Remove multiple return value support
           Product: libraries
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Core LLVM classes
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]
                CC: [email protected]
            Blocks: 2559


Now that most of the first class aggregate support is completed, we should be
able te remove the old multiple return value support sometime soon. This mostly
means two things:
 * return instructions should no longer be allowed to take more than one
operand.
 * The getresult instruction should be removed.

Returning multiple values can now be implemented by creating a struct using
insertvalue, returning it, and accessing the results using extractvalue
(instead of getresult).

This can be done as soon as all frontends have been changed to no longer use
multiple return values (not sure which currently do so).


Alternatively, we could add a pass that transforms the old multiple return
value instruction into insertvalues and replaces getresult with extractvalue
(or perhaps change the assembly/bitcode readers to do so).

This will allow support for multiple return values to be removed from all other
passes, while retaining backward compatibility for a while (how long?)


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to