OSDN Git Service

2008-09-18 Alexander Monakov <amonakov@ispras.ru>
authoramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Sep 2008 08:29:48 +0000 (08:29 +0000)
committeramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Sep 2008 08:29:48 +0000 (08:29 +0000)
PR middle-end/37499
* sched-int.h (struct _haifa_insn_data): Remove unused field
ref_count.

* sched-rgn.c (ref_counts): Remove.
(insn_referenced): New static variable.
(INSN_REF_COUNT): Remove.
(sched_run_compute_dependencies): Use insn_referenced instead of
INSN_REF_COUNT.
(add_branch_dependences): Likewise.  Delete dead assignment.

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

gcc/ChangeLog
gcc/sched-int.h
gcc/sched-rgn.c

index 6c2e2b3..1091895 100644 (file)
@@ -1,3 +1,16 @@
+2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
+
+       PR middle-end/37499
+       * sched-int.h (struct _haifa_insn_data): Remove unused field
+       ref_count.
+
+       * sched-rgn.c (ref_counts): Remove.
+       (insn_referenced): New static variable.
+       (INSN_REF_COUNT): Remove.
+       (sched_run_compute_dependencies): Use insn_referenced instead of
+       INSN_REF_COUNT.
+       (add_branch_dependences): Likewise.  Delete dead assignment.
+
 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
 
        * haifa-sched.c (dep_cost_1): Recognize the producer even if the
index 7fd3b55..e332c61 100644 (file)
@@ -678,9 +678,6 @@ struct _haifa_insn_data
   /* A priority for each insn.  */
   int priority;
 
-  /* Number of instructions referring to this insn.  */
-  int ref_count;
-
   /* The minimum clock tick at which the insn becomes ready.  This is
      used to note timing constraints for the insns in the pending list.  */
   int tick;
index 8ea3d09..004064e 100644 (file)
@@ -2395,9 +2395,9 @@ sets_likely_spilled_1 (rtx x, const_rtx pat, void *data)
     *ret = true;
 }
 
-/* An array used to hold the number of dependencies in which insn 
-   participates.  Used in add_branch_dependences.  */
-static int *ref_counts;
+/* A bitmap to note insns that participate in any dependency.  Used in
+   add_branch_dependences.  */
+static sbitmap insn_referenced;
 
 /* Add dependences so that branches are scheduled to run last in their
    block.  */
@@ -2424,8 +2424,6 @@ add_branch_dependences (rtx head, rtx tail)
      are not moved before reload because we can wind up with register
      allocation failures.  */
 
-#define INSN_REF_COUNT(INSN) (ref_counts[INSN_UID (INSN)])
-
   insn = tail;
   last = 0;
   while (CALL_P (insn)
@@ -2448,7 +2446,7 @@ add_branch_dependences (rtx head, rtx tail)
            {
              if (! sched_insns_conditions_mutex_p (last, insn))
                add_dependence (last, insn, REG_DEP_ANTI);
-             INSN_REF_COUNT (insn)++;
+             SET_BIT (insn_referenced, INSN_LUID (insn));
            }
 
          CANT_MOVE (insn) = 1;
@@ -2470,12 +2468,11 @@ add_branch_dependences (rtx head, rtx tail)
       {
        insn = prev_nonnote_insn (insn);
 
-       if (INSN_REF_COUNT (insn) != 0)
+       if (TEST_BIT (insn_referenced, INSN_LUID (insn)))
          continue;
 
        if (! sched_insns_conditions_mutex_p (last, insn))
          add_dependence (last, insn, REG_DEP_ANTI);
-       INSN_REF_COUNT (insn) = 1;
       }
 
 #ifdef HAVE_conditional_execution
@@ -3086,14 +3083,15 @@ sched_rgn_compute_dependencies (int rgn)
       for (bb = 0; bb < current_nr_blocks; bb++)
        init_deps (bb_deps + bb);
 
-      /* Initialize array used in add_branch_dependencies ().  */
-      ref_counts = XCNEWVEC (int, get_max_uid () + 1);
+      /* Initialize bitmap used in add_branch_dependences.  */
+      insn_referenced = sbitmap_alloc (sched_max_luid);
+      sbitmap_zero (insn_referenced);
       
       /* Compute backward dependencies.  */
       for (bb = 0; bb < current_nr_blocks; bb++)
        compute_block_dependences (bb);
       
-      free (ref_counts);
+      sbitmap_free (insn_referenced);
       free_pending_lists ();
       finish_deps_global ();
       free (bb_deps);