]> gcc.gnu.org Git - gcc.git/commitdiff
re PR rtl-optimization/53125 (Very slow compilation on SPARC)
authorVladimir Makarov <vmakarov@redhat.com>
Thu, 10 May 2012 19:58:01 +0000 (19:58 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Thu, 10 May 2012 19:58:01 +0000 (19:58 +0000)
2012-05-10  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/53125
* ira.c (ira): Call find_moveable_pseudos or
move_unallocated_pseudos if only ira_conflicts_p is true.

From-SVN: r187373

gcc/ChangeLog
gcc/ira.c

index 06834adab756679a84298a53129a2f16b8f0d772..1809d7c2abee5882221348242f759db06ffef0fa 100644 (file)
@@ -1,3 +1,9 @@
+2012-05-10  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/53125
+       * ira.c (ira): Call find_moveable_pseudos or
+       move_unallocated_pseudos if only ira_conflicts_p is true.
+
 2012-05-10  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (*movoi_internal_avx): Handle
index 456c5f0bcb3bd6decf43aa664e3d8d49f2622b47..f0d885c88134d6c12c388a9fbd0c20526f2693ca 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -4125,7 +4125,12 @@ ira (FILE *f)
     }
 
   allocated_reg_info_size = max_reg_num ();
-  find_moveable_pseudos ();
+
+  /* It is not worth to do such improvement when we use a simple
+     allocation because of -O0 usage or because the function is too
+     big.  */
+  if (ira_conflicts_p)
+    find_moveable_pseudos ();
 
   max_regno_before_ira = max_reg_num ();
   ira_setup_eliminable_regset ();
@@ -4234,7 +4239,10 @@ ira (FILE *f)
              max_regno * sizeof (struct ira_spilled_reg_stack_slot));
     }
   allocate_initial_values (reg_equivs);
-  move_unallocated_pseudos ();
+
+  /* See comment for find_moveable_pseudos call.  */
+  if (ira_conflicts_p)
+    move_unallocated_pseudos ();
 }
 
 static void
This page took 0.077439 seconds and 5 git commands to generate.