[LLVMbugs] [Bug 2560] New: Remove multiple return value support

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Thu Jul 17 07:23:46 PDT 2008


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: unassignedbugs at nondot.org
        ReportedBy: matthijs at stdin.nl
                CC: llvmbugs at cs.uiuc.edu
            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.



More information about the llvm-bugs mailing list