diff options
author | kan <kan@FreeBSD.org> | 2002-10-10 04:40:18 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2002-10-10 04:40:18 +0000 |
commit | 92318bc515d223b2eeebb665f76e131dd2318b2b (patch) | |
tree | f505e08c93c8d3d8e51f5dac050b459cce4d4ae2 /contrib/gcc/sibcall.c | |
parent | 48f00f4c43af857e09b5f961c806a8811c504a3c (diff) | |
download | FreeBSD-src-92318bc515d223b2eeebb665f76e131dd2318b2b.zip FreeBSD-src-92318bc515d223b2eeebb665f76e131dd2318b2b.tar.gz |
Gcc 3.2.1-prerelease from the FSF anoncvs repo gcc-3_2-branch on October 9th 2002 20:15 EST.
Diffstat (limited to 'contrib/gcc/sibcall.c')
-rw-r--r-- | contrib/gcc/sibcall.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/contrib/gcc/sibcall.c b/contrib/gcc/sibcall.c index 6e753fa..fca451f 100644 --- a/contrib/gcc/sibcall.c +++ b/contrib/gcc/sibcall.c @@ -574,8 +574,8 @@ optimize_sibling_and_tail_recursive_calls () rtx insn, insns; basic_block alternate_exit = EXIT_BLOCK_PTR; bool no_sibcalls_this_function = false; - int successful_sibling_call = 0; - int replaced_call_placeholder = 0; + bool successful_replacement = false; + bool replaced_call_placeholder = false; edge e; insns = get_insns (); @@ -715,10 +715,11 @@ optimize_sibling_and_tail_recursive_calls () /* Select a set of insns to implement the call and emit them. Tail recursion is the most efficient, so select it over a tail/sibling call. */ - if (sibcall) - successful_sibling_call = 1; - replaced_call_placeholder = 1; + if (sibcall || tailrecursion) + successful_replacement = true; + replaced_call_placeholder = true; + replace_call_placeholder (insn, tailrecursion != 0 ? sibcall_use_tail_recursion @@ -728,7 +729,7 @@ optimize_sibling_and_tail_recursive_calls () } } - if (successful_sibling_call) + if (successful_replacement) { rtx insn; tree arg; |