[LLVMbugs] [Bug 3664] Struct return values inhibit tail call elimination

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Sat Mar 28 01:50:59 PDT 2009


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


Arnold Schwaighofer <arnold.schwaighofer at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




--- Comment #1 from Arnold Schwaighofer <arnold.schwaighofer at gmail.com>  2009-03-28 03:50:58 ---
Fixed in http://llvm.org/viewvc/llvm-project?view=rev&revision=67934.

Ultimately CheckTailCallReturnConstraints in TargetLowering gets to decide
whether a call is a tail call.
A struct return causes the creation of a MERGE_VALUES node between the CALL and
RET node. Due to that node the code in CheckTailCallReturnConstraints assumed
the call to not be a tail call.

The code is adapted in 67934 to recognize this additional node.


-- 
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