Clean up useless initialization for IRA if using LRA.
authorKito Cheng <kito@0xlab.org>
Tue, 16 Sep 2014 05:24:31 +0000 (05:24 +0000)
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>
Tue, 16 Sep 2014 05:24:31 +0000 (05:24 +0000)
gcc/
* ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
ira_spilled_reg_stack_slots_num if using lra.
(do_reload): Remove release ira_spilled_reg_stack_slots part.
* ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
make sure not using lra.
(ira_reuse_stack_slot): Likewise.
(ira_mark_new_stack_slot): Likewise.

From-SVN: r215286

gcc/ChangeLog
gcc/ira-color.c
gcc/ira.c

index 8d4f5ba1c372ec07db36b49b77bab2dad8139b56..86544e2e5d1c030b1e75be938ca2a0b90ce8409a 100644 (file)
@@ -1,3 +1,13 @@
+2014-09-16  Kito Cheng  <kito@0xlab.org>
+
+       * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
+       ira_spilled_reg_stack_slots_num if using lra.
+       (do_reload): Remove release ira_spilled_reg_stack_slots part.
+       * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
+       make sure not using lra.
+       (ira_reuse_stack_slot): Likewise.
+       (ira_mark_new_stack_slot): Likewise.
+
 2014-09-15  Andi Kleen  <ak@linux.intel.com>
 
        * function.c (allocate_struct_function): Force
index e2ea3596efcba8c993b9c061b2ae289ceea7984d..6846567b78fa0151388b3272f961fe6f10331e6f 100644 (file)
@@ -4067,6 +4067,8 @@ ira_sort_regnos_for_alter_reg (int *pseudo_regnos, int n,
   ira_allocno_iterator ai;
   ira_allocno_t *spilled_coalesced_allocnos;
 
+  ira_assert (! ira_use_lra_p);
+
   /* Set up allocnos can be coalesced.  */
   coloring_allocno_bitmap = ira_allocate_bitmap ();
   for (i = 0; i < n; i++)
@@ -4416,6 +4418,8 @@ ira_reuse_stack_slot (int regno, unsigned int inherent_size,
   bitmap_iterator bi;
   struct ira_spilled_reg_stack_slot *slot = NULL;
 
+  ira_assert (! ira_use_lra_p);
+
   ira_assert (inherent_size == PSEUDO_REGNO_BYTES (regno)
              && inherent_size <= total_size
              && ALLOCNO_HARD_REGNO (allocno) < 0);
@@ -4528,6 +4532,8 @@ ira_mark_new_stack_slot (rtx x, int regno, unsigned int total_size)
   int slot_num;
   ira_allocno_t allocno;
 
+  ira_assert (! ira_use_lra_p);
+
   ira_assert (PSEUDO_REGNO_BYTES (regno) <= total_size);
   allocno = ira_regno_allocno_map[regno];
   slot_num = -ALLOCNO_HARD_REGNO (allocno) - 2;
index dc69a9c43072d1eaf315baf417262845efd1b1fd..f377f7da6743d462430abbda39f0c0d586f9ac99 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -5260,14 +5260,16 @@ ira (FILE *f)
 #ifdef ENABLE_IRA_CHECKING
       print_redundant_copies ();
 #endif
-
-      ira_spilled_reg_stack_slots_num = 0;
-      ira_spilled_reg_stack_slots
-       = ((struct ira_spilled_reg_stack_slot *)
-          ira_allocate (max_regno
-                        * sizeof (struct ira_spilled_reg_stack_slot)));
-      memset (ira_spilled_reg_stack_slots, 0,
-             max_regno * sizeof (struct ira_spilled_reg_stack_slot));
+      if (! ira_use_lra_p)
+       {
+         ira_spilled_reg_stack_slots_num = 0;
+         ira_spilled_reg_stack_slots
+           = ((struct ira_spilled_reg_stack_slot *)
+              ira_allocate (max_regno
+                            * sizeof (struct ira_spilled_reg_stack_slot)));
+         memset (ira_spilled_reg_stack_slots, 0,
+                 max_regno * sizeof (struct ira_spilled_reg_stack_slot));
+       }
     }
   allocate_initial_values ();
 
@@ -5303,9 +5305,6 @@ do_reload (void)
       FOR_ALL_BB_FN (bb, cfun)
        bb->loop_father = NULL;
       current_loops = NULL;
-      
-      if (ira_conflicts_p)
-       ira_free (ira_spilled_reg_stack_slots);
 
       ira_destroy ();