Commit a6a5a42d by Richard Sandiford Committed by Richard Sandiford

calls.c (expand_call): Don't try using tail or recursive calls after the…

calls.c (expand_call): Don't try using tail or recursive calls after the function body has been expanded.

	* calls.c (expand_call): Don't try using tail or recursive calls
	after the function body has been expanded.

From-SVN: r74415
parent c45b6ae0
2003-12-08 Richard Sandiford <rsandifo@redhat.com>
* calls.c (expand_call): Don't try using tail or recursive calls
after the function body has been expanded.
2003-12-08 Jan Hubicka <jh@suse.cz> 2003-12-08 Jan Hubicka <jh@suse.cz>
* i386.md (cmpstr expander): Obey TARGET_INLINE_ALL_STRINGOPS * i386.md (cmpstr expander): Obey TARGET_INLINE_ALL_STRINGOPS
......
...@@ -2485,11 +2485,15 @@ expand_call (tree exp, rtx target, int ignore) ...@@ -2485,11 +2485,15 @@ expand_call (tree exp, rtx target, int ignore)
finished with regular parsing. Which means that some of the finished with regular parsing. Which means that some of the
machinery we use to generate tail-calls is no longer in place. machinery we use to generate tail-calls is no longer in place.
This is most often true of sjlj-exceptions, which we couldn't This is most often true of sjlj-exceptions, which we couldn't
tail-call to anyway. */ tail-call to anyway.
If current_nesting_level () == 0, we're being called after
the function body has been expanded. This can happen when
setting up trampolines in expand_function_end. */
if (currently_expanding_call++ != 0 if (currently_expanding_call++ != 0
|| !flag_optimize_sibling_calls || !flag_optimize_sibling_calls
|| !rtx_equal_function_value_matters || !rtx_equal_function_value_matters
|| current_nesting_level () == 0
|| any_pending_cleanups () || any_pending_cleanups ()
|| args_size.var) || args_size.var)
try_tail_call = try_tail_recursion = 0; try_tail_call = try_tail_recursion = 0;
......
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