OSDN Git Service

* toplev.c (rest_of_compilation): Delay sibcall optimization
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Apr 2000 10:13:17 +0000 (10:13 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Apr 2000 10:13:17 +0000 (10:13 +0000)
        until after emit_eh_context.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33407 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/toplev.c

index 5240478..8ee7fd2 100644 (file)
@@ -1,3 +1,8 @@
+2000-04-25  Richard Henderson  <rth@cygnus.com>
+
+       * toplev.c (rest_of_compilation): Delay sibcall optimization
+       until after emit_eh_context.
+
 2000-04-24  Nick Clifton  <nickc@redhat.com>
 
        * combine.c (combine_instructions): Do not try to combine a
index 17e8ebc..b479c84 100644 (file)
@@ -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.