Commit 0e456625 by Jan Hubicka Committed by Jan Hubicka

calls.c (expand_call): Do not sibcall if outgoing_reg_parm_stack_space does not match.

	* calls.c (expand_call): Do not sibcall if
	outgoing_reg_parm_stack_space does not match.

Co-Authored-By: Kai Tietz <kai.tietz@onevision.com>

From-SVN: r142792
parent 8c13133c
2008-12-12 Jan Hubicka <jh@suse.cz>
Kai Tietz <kai.tietz@onevision.com>
* calls.c (expand_call): Do not sibcall if
outgoing_reg_parm_stack_space does not match.
2008-12-12 Anatoly Sokolov <aesok@post.ru> 2008-12-12 Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81, * config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
...@@ -2298,6 +2298,10 @@ expand_call (tree exp, rtx target, int ignore) ...@@ -2298,6 +2298,10 @@ expand_call (tree exp, rtx target, int ignore)
It does not seem worth the effort since few optimizable It does not seem worth the effort since few optimizable
sibling calls will return a structure. */ sibling calls will return a structure. */
|| structure_value_addr != NULL_RTX || structure_value_addr != NULL_RTX
/* If outgoing reg parm stack space changes, we can not do sibcall. */
|| (OUTGOING_REG_PARM_STACK_SPACE (funtype)
!= OUTGOING_REG_PARM_STACK_SPACE (TREE_TYPE (current_function_decl)))
|| (reg_parm_stack_space != REG_PARM_STACK_SPACE (fndecl))
/* Check whether the target is able to optimize the call /* Check whether the target is able to optimize the call
into a sibcall. */ into a sibcall. */
|| !targetm.function_ok_for_sibcall (fndecl, exp) || !targetm.function_ok_for_sibcall (fndecl, exp)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment