As the subject says, these four standard names are not documented.  By analogy
to the way in which "sibcall_epilogue" has a separate entry from "epilogue",
they should also have their own entries in the "standard pattern names for
generation" chapter of the internals manual.  The entry for
FUNCTION_OK_FOR_SIBCALL even refers to "the 'sibcall' md pattern", but there is
no other mention of it.

  Note also that if you implement siball_epilogue by emitting a
fully-schedulable RTL epilogue (rather than just using an unspec to represent
the entire thing as a black box to the compiler and emitting it opencoded at
assembler output generation time like the arm port does in 3.3.3 where I
discovered this), you may also need to implement these sibcall patterns, or you
can get ICEn when the register allocator gets confused in one of the later
passes.  This dependency is not mentioned anywhere.  However I have not tested
it against 4.x/HEAD to see if it remains the case.

    cheers, 
       DaveK


-- 
           Summary: sibcall, sibcall_value, sibcall_pop, sibcall_value_pop:
                    standard names not documented.
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dave dot korn at artimi dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26831

Reply via email to