From fb158467a90388f6abec96db67bcf2ec48688220 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 28 Nov 2000 20:34:59 +0100 Subject: [PATCH] calls.c (expand_call): Don't disable tail recursion based on the loop nest. * calls.c (expand_call): Don't disable tail recursion based on the loop nest. From-SVN: r37822 --- gcc/ChangeLog | 5 +++++ gcc/calls.c | 6 ++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e471fe3eedd..d988b9c2e40 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-11-28 Jan Hubicka + + * calls.c (expand_call): Don't disable tail recursion based + on the loop nest. + 2000-11-28 Neil Booth * tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT. diff --git a/gcc/calls.c b/gcc/calls.c index 14c10b0d421..ad79078f883 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2416,9 +2416,8 @@ expand_call (exp, target, ignore) /* Tail calls can make things harder to debug, and we're traditionally pushed these optimizations into -O2. Don't try if we're already - expanding a call, as that means we're an argument. Similarly, if - there's pending loops or cleanups we know there's code to follow - the call. + expanding a call, as that means we're an argument. Don't try if + there's cleanups, as we know there's code to follow the call. If rtx_equal_function_value_matters is false, that means we've finished with regular parsing. Which means that some of the @@ -2429,7 +2428,6 @@ expand_call (exp, target, ignore) if (currently_expanding_call++ != 0 || !flag_optimize_sibling_calls || !rtx_equal_function_value_matters - || !stmt_loop_nest_empty () || any_pending_cleanups (1) || args_size.var) try_tail_call = try_tail_recursion = 0; -- 2.30.2