haifa-sched.c: make ready_list an auto_vec<rtx_insn *>
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>
Sun, 28 Aug 2016 00:03:52 +0000 (00:03 +0000)
committerTrevor Saunders <tbsaunde@gcc.gnu.org>
Sun, 28 Aug 2016 00:03:52 +0000 (00:03 +0000)
gcc/ChangeLog:

2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* haifa-sched.c (fix_recovery_deps): Make ready_list a vector.

From-SVN: r239799

gcc/ChangeLog
gcc/haifa-sched.c

index cb259a07fab7fee7956e1a2a7411df38133fd7ff..2cfb164882e9f71390d87598d17f0acabea8a9a3 100644 (file)
@@ -1,3 +1,7 @@
+2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
+
+       * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
+
 2016-08-27  Patrick Palka  <ppalka@gcc.gnu.org>
 
        PR tree-optimization/71077
index 84e42c0ac9bc1f5f3ffda12283c8c86931704454..c58b0ad399f0bb3732a4c7e57f7753e62d0e2e9e 100644 (file)
@@ -8600,9 +8600,8 @@ static void
 fix_recovery_deps (basic_block rec)
 {
   rtx_insn *note, *insn, *jump;
-  rtx_insn_list *ready_list = 0;
+  auto_vec<rtx_insn *, 10> ready_list;
   bitmap_head in_ready;
-  rtx_insn_list *link;
 
   bitmap_initialize (&in_ready, 0);
 
@@ -8628,7 +8627,7 @@ fix_recovery_deps (basic_block rec)
              sd_delete_dep (sd_it);
 
              if (bitmap_set_bit (&in_ready, INSN_LUID (consumer)))
-               ready_list = alloc_INSN_LIST (consumer, ready_list);
+               ready_list.safe_push (consumer);
            }
          else
            {
@@ -8645,9 +8644,10 @@ fix_recovery_deps (basic_block rec)
   bitmap_clear (&in_ready);
 
   /* Try to add instructions to the ready or queue list.  */
-  for (link = ready_list; link; link = link->next ())
-    try_ready (link->insn ());
-  free_INSN_LIST_list (&ready_list);
+  unsigned int i;
+  rtx_insn *temp;
+  FOR_EACH_VEC_ELT_REVERSE (ready_list, i, temp)
+    try_ready (temp);
 
   /* Fixing jump's dependences.  */
   insn = BB_HEAD (rec);