OSDN Git Service

gcc/
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Jan 2009 21:58:46 +0000 (21:58 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Jan 2009 21:58:46 +0000 (21:58 +0000)
PR rtl-optimization/38426.
* ira.c (ira): Set current_function_is_leaf earlier.

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

gcc/ChangeLog
gcc/ira.c

index 8dafe63..942d733 100644 (file)
@@ -1,3 +1,8 @@
+2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       PR rtl-optimization/38426.
+       * ira.c (ira): Set current_function_is_leaf earlier.
+
 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
 
        PR rtl-optimization/38722
index 2273512..5830bae 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -1879,6 +1879,11 @@ ira (FILE *f)
   if (warn_clobbered)
     generate_setjmp_warnings ();
 
+  /* Determine if the current function is a leaf before running IRA
+     since this can impact optimizations done by the prologue and
+     epilogue thus changing register elimination offsets.  */
+  current_function_is_leaf = leaf_function_p ();
+
   rebuild_p = update_equiv_regs ();
 
 #ifndef IRA_NO_OBSTACK
@@ -1977,11 +1982,6 @@ ira (FILE *f)
   delete_trivially_dead_insns (get_insns (), max_reg_num ());
   max_regno = max_reg_num ();
   
-  /* Determine if the current function is a leaf before running IRA
-     since this can impact optimizations done by the prologue and
-     epilogue thus changing register elimination offsets.  */
-  current_function_is_leaf = leaf_function_p ();
-  
   /* And the reg_equiv_memory_loc array.  */
   VEC_safe_grow (rtx, gc, reg_equiv_memory_loc_vec, max_regno);
   memset (VEC_address (rtx, reg_equiv_memory_loc_vec), 0,