diff options
author | Richard Henderson <rth@cygnus.com> | 2000-04-25 03:13:17 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-04-25 03:13:17 -0700 |
commit | 9d9e5c09bd9fceccbeda15db6b31b2af699d494f (patch) | |
tree | b815b7b3d56470cd3092432c28c5f17e798992b6 /gcc/toplev.c | |
parent | c387f6289827aefdedbffbe486952c47ac9e1739 (diff) | |
download | gcc-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.c | 21 |
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. |