This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/26831] New: sibcall, sibcall_value, sibcall_pop, sibcall_value_pop: standard names not documented.
- From: "dave dot korn at artimi dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Mar 2006 20:43:37 -0000
- Subject: [Bug middle-end/26831] New: sibcall, sibcall_value, sibcall_pop, sibcall_value_pop: standard names not documented.
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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