aboutsummaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-04-25 03:13:17 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-04-25 03:13:17 -0700
commit9d9e5c09bd9fceccbeda15db6b31b2af699d494f (patch)
treeb815b7b3d56470cd3092432c28c5f17e798992b6 /gcc/toplev.c
parentc387f6289827aefdedbffbe486952c47ac9e1739 (diff)
downloadgcc-9d9e5c09bd9fceccbeda15db6b31b2af699d494f.zip
gcc-9d9e5c09bd9fceccbeda15db6b31b2af699d494f.tar.gz
gcc-9d9e5c09bd9fceccbeda15db6b31b2af699d494f.tar.bz2
toplev.c (rest_of_compilation): Delay sibcall optimization until after emit_eh_context.
* toplev.c (rest_of_compilation): Delay sibcall optimization until after emit_eh_context. From-SVN: r33407
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 17e8ebc..b479c84 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -2897,16 +2897,6 @@ rest_of_compilation (decl)
init_EXPR_INSN_LIST_cache ();
- /* We may have potential sibling or tail recursion sites. Select one
- (of possibly multiple) methods of performing the call. */
- open_dump_file (DFI_sibling, decl);
- TIMEVAR (jump_time,
- {
- if (flag_optimize_sibling_calls)
- optimize_sibling_and_tail_recursive_calls ();
- });
- close_dump_file (DFI_sibling, print_rtl, get_insns ());
-
if (ggc_p)
ggc_collect ();
@@ -2928,6 +2918,17 @@ rest_of_compilation (decl)
/* Emit code to get eh context, if needed. */
emit_eh_context ();
+ /* We may have potential sibling or tail recursion sites. Select one
+ (of possibly multiple) methods of performing the call. */
+ if (flag_optimize_sibling_calls)
+ {
+ open_dump_file (DFI_sibling, decl);
+
+ TIMEVAR (jump_time, optimize_sibling_and_tail_recursive_calls ());
+
+ close_dump_file (DFI_sibling, print_rtl, get_insns ());
+ }
+
#ifdef FINALIZE_PIC
/* If we are doing position-independent code generation, now
is the time to output special prologues and epilogues.