Fix linux-x-cygwin build failure with readline.
* stmt.c (expand_return): Return if optimize_tail_recursion succeeded. (optimize_tail_recursion): Change return type from void to int. Add return statements. * tree.h (optimize_tail_recursion): Change prototype to match. From-SVN: r25170
This commit is contained in:
parent
22505ad8f3
commit
564ea0512d
@ -1,3 +1,10 @@
|
|||||||
|
Fri Feb 12 13:06:28 1999 Jim Wilson <wilson@cygnus.com>
|
||||||
|
|
||||||
|
* stmt.c (expand_return): Return if optimize_tail_recursion succeeded.
|
||||||
|
(optimize_tail_recursion): Change return type from void to int.
|
||||||
|
Add return statements.
|
||||||
|
* tree.h (optimize_tail_recursion): Change prototype to match.
|
||||||
|
|
||||||
Fri Feb 12 21:09:51 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
|
Fri Feb 12 21:09:51 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||||
|
|
||||||
* reload.c (find_reloads_subreg_address): New function, broken out of
|
* reload.c (find_reloads_subreg_address): New function, broken out of
|
||||||
|
11
gcc/stmt.c
11
gcc/stmt.c
@ -2632,7 +2632,8 @@ expand_return (retval)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Attempt to optimize the call if it is tail recursive. */
|
/* Attempt to optimize the call if it is tail recursive. */
|
||||||
optimize_tail_recursion (retval_rhs, last_insn);
|
if (optimize_tail_recursion (retval_rhs, last_insn))
|
||||||
|
return;
|
||||||
|
|
||||||
#ifdef HAVE_return
|
#ifdef HAVE_return
|
||||||
/* This optimization is safe if there are local cleanups
|
/* This optimization is safe if there are local cleanups
|
||||||
@ -2840,12 +2841,13 @@ drop_through_at_end_p ()
|
|||||||
|
|
||||||
/* Test CALL_EXPR to determine if it is a potential tail recursion call
|
/* Test CALL_EXPR to determine if it is a potential tail recursion call
|
||||||
and emit code to optimize the tail recursion. LAST_INSN indicates where
|
and emit code to optimize the tail recursion. LAST_INSN indicates where
|
||||||
to place the jump to the tail recursion label.
|
to place the jump to the tail recursion label. Return TRUE if the
|
||||||
|
call was optimized into a goto.
|
||||||
|
|
||||||
This is only used by expand_return, but expand_call is expected to
|
This is only used by expand_return, but expand_call is expected to
|
||||||
use it soon. */
|
use it soon. */
|
||||||
|
|
||||||
void
|
int
|
||||||
optimize_tail_recursion (call_expr, last_insn)
|
optimize_tail_recursion (call_expr, last_insn)
|
||||||
tree call_expr;
|
tree call_expr;
|
||||||
rtx last_insn;
|
rtx last_insn;
|
||||||
@ -2874,7 +2876,10 @@ optimize_tail_recursion (call_expr, last_insn)
|
|||||||
emit_queue ();
|
emit_queue ();
|
||||||
expand_goto_internal (NULL_TREE, tail_recursion_label, last_insn);
|
expand_goto_internal (NULL_TREE, tail_recursion_label, last_insn);
|
||||||
emit_barrier ();
|
emit_barrier ();
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Emit code to alter this function's formal parms for a tail-recursive call.
|
/* Emit code to alter this function's formal parms for a tail-recursive call.
|
||||||
|
@ -1933,7 +1933,7 @@ extern int expand_exit_something PROTO((void));
|
|||||||
|
|
||||||
extern void expand_null_return PROTO((void));
|
extern void expand_null_return PROTO((void));
|
||||||
extern void expand_return PROTO((tree));
|
extern void expand_return PROTO((tree));
|
||||||
extern void optimize_tail_recursion PROTO((tree, struct rtx_def *));
|
extern int optimize_tail_recursion PROTO((tree, struct rtx_def *));
|
||||||
extern void expand_start_bindings PROTO((int));
|
extern void expand_start_bindings PROTO((int));
|
||||||
extern void expand_end_bindings PROTO((tree, int, int));
|
extern void expand_end_bindings PROTO((tree, int, int));
|
||||||
extern void start_cleanup_deferral PROTO((void));
|
extern void start_cleanup_deferral PROTO((void));
|
||||||
|
Loading…
Reference in New Issue
Block a user