sched-ebb.c: Use rtx_insn (requires touching sched-int.h and config/c6x/c6x.c)
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 22 Aug 2014 21:10:21 +0000 (21:10 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Fri, 22 Aug 2014 21:10:21 +0000 (21:10 +0000)
gcc/
2014-08-22  David Malcolm  <dmalcolm@redhat.com>

* sched-int.h (schedule_ebb): Strengthen params "head", "tail"
from rtx to rtx_insn *.

* sched-ebb.c (earliest_block_with_similiar_load): Strengthen
locals "insn1", "insn2" from rtx to rtx_insn *.
(add_deps_for_risky_insns): Likewise for params "head", "tail" and
locals "insn", "prev", "last_jump", "next_tail".
(schedule_ebb): Likewise for params "head", "tail".
(schedule_ebbs): Likewise for locals "tail", "head".

* config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
to rtx_insn on "last_insn" in one of the invocations of
schedule_ebb.

From-SVN: r214375

gcc/ChangeLog
gcc/config/c6x/c6x.c
gcc/sched-ebb.c
gcc/sched-int.h

index 04f6628008ee59815126884d5c344d33ce23fc58..2d3e7502affe5498a55ee5999d32d7db497ba08b 100644 (file)
@@ -1,3 +1,19 @@
+2014-08-22  David Malcolm  <dmalcolm@redhat.com>
+
+       * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
+       from rtx to rtx_insn *.
+
+       * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
+       locals "insn1", "insn2" from rtx to rtx_insn *.
+       (add_deps_for_risky_insns): Likewise for params "head", "tail" and
+       locals "insn", "prev", "last_jump", "next_tail".
+       (schedule_ebb): Likewise for params "head", "tail".
+       (schedule_ebbs): Likewise for locals "tail", "head".
+
+       * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
+       to rtx_insn on "last_insn" in one of the invocations of
+       schedule_ebb.
+
 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
 
        * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
index 889031ac9daf8428a1709000e756f4ef4ae8f275..99987346555be664433ddfb7c78490a91e0ccdd0 100644 (file)
@@ -5669,7 +5669,9 @@ hwloop_optimize (hwloop_info loop)
       schedule_ebbs_init ();
       set_modulo_params (sp_ii, max_parallel, n_real_insns,
                         sploop_max_uid_iter0);
-      tmp_bb = schedule_ebb (BB_HEAD (bb), last_insn, true);
+      tmp_bb = schedule_ebb (BB_HEAD (bb),
+                            safe_as_a <rtx_insn *> (last_insn),
+                            true);
       schedule_ebbs_finish ();
 
       if (tmp_bb)
index ce172142a133a005ad890bd0b7eb86e9fe91c44f..100bf5bf5e22b148bbc31643508a39ec29c030ce 100644 (file)
@@ -61,7 +61,7 @@ static const char *ebb_print_insn (const_rtx, int);
 static int rank (rtx, rtx);
 static int ebb_contributes_to_priority (rtx, rtx);
 static basic_block earliest_block_with_similiar_load (basic_block, rtx);
-static void add_deps_for_risky_insns (rtx, rtx);
+static void add_deps_for_risky_insns (rtx_insn *, rtx_insn *);
 static void debug_ebb_dependencies (rtx, rtx);
 
 static void ebb_add_remove_insn (rtx, int);
@@ -338,7 +338,7 @@ earliest_block_with_similiar_load (basic_block last_block, rtx load_insn)
 
   FOR_EACH_DEP (load_insn, SD_LIST_BACK, back_sd_it, back_dep)
     {
-      rtx insn1 = DEP_PRO (back_dep);
+      rtx_insn *insn1 = DEP_PRO (back_dep);
 
       if (DEP_TYPE (back_dep) == REG_DEP_TRUE)
        /* Found a DEF-USE dependence (insn1, load_insn).  */
@@ -348,7 +348,7 @@ earliest_block_with_similiar_load (basic_block last_block, rtx load_insn)
 
          FOR_EACH_DEP (insn1, SD_LIST_FORW, fore_sd_it, fore_dep)
            {
-             rtx insn2 = DEP_CON (fore_dep);
+             rtx_insn *insn2 = DEP_CON (fore_dep);
              basic_block insn2_block = BLOCK_FOR_INSN (insn2);
 
              if (DEP_TYPE (fore_dep) == REG_DEP_TRUE)
@@ -381,12 +381,12 @@ earliest_block_with_similiar_load (basic_block last_block, rtx load_insn)
    insns in given ebb.  */
 
 static void
-add_deps_for_risky_insns (rtx head, rtx tail)
+add_deps_for_risky_insns (rtx_insn *head, rtx_insn *tail)
 {
-  rtx insn, prev;
+  rtx_insn *insn, *prev;
   int classification;
-  rtx last_jump = NULL_RTX;
-  rtx next_tail = NEXT_INSN (tail);
+  rtx_insn *last_jump = NULL;
+  rtx_insn *next_tail = NEXT_INSN (tail);
   basic_block last_block = NULL, bb;
 
   for (insn = head; insn != next_tail; insn = NEXT_INSN (insn))
@@ -477,7 +477,7 @@ add_deps_for_risky_insns (rtx head, rtx tail)
    NULL_RTX.  */
 
 basic_block
-schedule_ebb (rtx head, rtx tail, bool modulo_scheduling)
+schedule_ebb (rtx_insn *head, rtx_insn *tail, bool modulo_scheduling)
 {
   basic_block first_bb, target_bb;
   struct deps_desc tmp_deps;
@@ -621,7 +621,7 @@ schedule_ebbs (void)
 {
   basic_block bb;
   int probability_cutoff;
-  rtx tail;
+  rtx_insn *tail;
 
   /* Taking care of this degenerate case makes the rest of
      this code simpler.  */
@@ -639,7 +639,7 @@ schedule_ebbs (void)
   /* Schedule every region in the subroutine.  */
   FOR_EACH_BB_FN (bb, cfun)
     {
-      rtx head = BB_HEAD (bb);
+      rtx_insn *head = BB_HEAD (bb);
 
       if (bb->flags & BB_DISABLE_SCHEDULE)
        continue;
index df7795d5516bb0cf0db93ac85d9b11ea59dc6fca..ae048c1f6460d24a4fd4c71b37d8109d72fe66da 100644 (file)
@@ -1377,7 +1377,7 @@ extern int number_in_ready (void);
 \f
 /* Types and functions in sched-ebb.c.  */
 
-extern basic_block schedule_ebb (rtx, rtx, bool);
+extern basic_block schedule_ebb (rtx_insn *, rtx_insn *, bool);
 extern void schedule_ebbs_init (void);
 extern void schedule_ebbs_finish (void);
 \f