Commit 8ad8135a by Richard Henderson Committed by Richard Henderson

expr.c (expand_expr): Use GOTO_SUBROUTINE_EXPR form when not optimizing.

        * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Use GOTO_SUBROUTINE_EXPR
        form when not optimizing.

From-SVN: r55723
parent dc44a4d8
2002-07-24 Richard Henderson <rth@redhat.com>
* expr.c (expand_expr) [TRY_FINALLY_EXPR]: Use GOTO_SUBROUTINE_EXPR
form when not optimizing.
2002-07-24 David Mosberger <davidm@hpl.hp.com> 2002-07-24 David Mosberger <davidm@hpl.hp.com>
* config/ia64/ia64.c (gen_thread_pointer): Fix typo in marking * config/ia64/ia64.c (gen_thread_pointer): Fix typo in marking
......
...@@ -8966,12 +8966,18 @@ expand_expr (exp, target, tmode, modifier) ...@@ -8966,12 +8966,18 @@ expand_expr (exp, target, tmode, modifier)
tree try_block = TREE_OPERAND (exp, 0); tree try_block = TREE_OPERAND (exp, 0);
tree finally_block = TREE_OPERAND (exp, 1); tree finally_block = TREE_OPERAND (exp, 1);
if (unsafe_for_reeval (finally_block) > 1) if (!optimize || unsafe_for_reeval (finally_block) > 1)
{ {
/* In this case, wrapping FINALLY_BLOCK in an UNSAVE_EXPR /* In this case, wrapping FINALLY_BLOCK in an UNSAVE_EXPR
is not sufficient, so we cannot expand the block twice. is not sufficient, so we cannot expand the block twice.
So we play games with GOTO_SUBROUTINE_EXPR to let us So we play games with GOTO_SUBROUTINE_EXPR to let us
expand the thing only once. */ expand the thing only once. */
/* When not optimizing, we go ahead with this form since
(1) user breakpoints operate more predictably without
code duplication, and
(2) we're not running any of the global optimizers
that would explode in time/space with the highly
connected CFG created by the indirect branching. */
rtx finally_label = gen_label_rtx (); rtx finally_label = gen_label_rtx ();
rtx done_label = gen_label_rtx (); rtx done_label = gen_label_rtx ();
......
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