Use rtx_insn in various places in resource.[ch]
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 29 Aug 2014 00:09:39 +0000 (00:09 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Fri, 29 Aug 2014 00:09:39 +0000 (00:09 +0000)
gcc/
2014-08-28  David Malcolm  <dmalcolm@redhat.com>

* resource.h (clear_hashed_info_for_insn): Strengthen param from
rtx to rtx_insn *.
(incr_ticks_for_insn): Likewise.
(init_resource_info): Likewise.

* resource.c (init_resource_info): Likewise.
(clear_hashed_info_for_insn): Likewise.
(incr_ticks_for_insn): Likewise.

* reorg.c (delete_scheduled_jump): Strengthen param "insn" from
rtx to rtx_insn *.
(steal_delay_list_from_target): Use methods of "seq".
(try_merge_delay_insns): Use methods of "merged_insns".
(update_block): Strengthen param "insn" from rtx to rtx_insn *.
(reorg_redirect_jump): Likewise for param "jump".

From-SVN: r214702

gcc/ChangeLog
gcc/reorg.c
gcc/resource.c
gcc/resource.h

index a928f92f9e14835efe1a54f25a82f77e136a79dc..294c7e04690eb5a56b282ff09fc9855131ab2c65 100644 (file)
@@ -1,3 +1,21 @@
+2014-08-28  David Malcolm  <dmalcolm@redhat.com>
+
+       * resource.h (clear_hashed_info_for_insn): Strengthen param from
+       rtx to rtx_insn *.
+       (incr_ticks_for_insn): Likewise.
+       (init_resource_info): Likewise.
+
+       * resource.c (init_resource_info): Likewise.
+       (clear_hashed_info_for_insn): Likewise.
+       (incr_ticks_for_insn): Likewise.
+
+       * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
+       rtx to rtx_insn *.
+       (steal_delay_list_from_target): Use methods of "seq".
+       (try_merge_delay_insns): Use methods of "merged_insns".
+       (update_block): Strengthen param "insn" from rtx to rtx_insn *.
+       (reorg_redirect_jump): Likewise for param "jump".
+
 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
 
        * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
index 4681e02aae9cc43ce3837cae160436cca67611ea..68779e4ee5c7c5a1bce6954a4bd9eb6b5f46ac16 100644 (file)
@@ -210,7 +210,7 @@ static rtx_code_label *find_end_label (rtx);
 static rtx_insn *emit_delay_sequence (rtx_insn *, rtx_insn_list *, int);
 static rtx_insn_list *add_to_delay_list (rtx_insn *, rtx_insn_list *);
 static rtx_insn *delete_from_delay_slot (rtx_insn *);
-static void delete_scheduled_jump (rtx);
+static void delete_scheduled_jump (rtx_insn *);
 static void note_delay_statistics (int, int);
 #if defined(ANNUL_IFFALSE_SLOTS) || defined(ANNUL_IFTRUE_SLOTS)
 static rtx_insn_list *optimize_skip (rtx_insn *);
@@ -240,8 +240,8 @@ static rtx_insn_list *steal_delay_list_from_fallthrough (rtx_insn *, rtx,
 static void try_merge_delay_insns (rtx, rtx_insn *);
 static rtx redundant_insn (rtx, rtx_insn *, rtx);
 static int own_thread_p (rtx_insn *, rtx, int);
-static void update_block (rtx, rtx);
-static int reorg_redirect_jump (rtx, rtx);
+static void update_block (rtx_insn *, rtx);
+static int reorg_redirect_jump (rtx_insn *, rtx);
 static void update_reg_dead_notes (rtx, rtx);
 static void fix_reg_dead_note (rtx, rtx);
 static void update_reg_unused_notes (rtx, rtx);
@@ -666,7 +666,7 @@ delete_from_delay_slot (rtx_insn *insn)
    the insn that sets CC0 for it and delete it too.  */
 
 static void
-delete_scheduled_jump (rtx insn)
+delete_scheduled_jump (rtx_insn *insn)
 {
   /* Delete the insn that sets cc0 for us.  On machines without cc0, we could
      delete the insn that sets the condition code, but it is hard to find it.
@@ -1197,9 +1197,9 @@ steal_delay_list_from_target (rtx_insn *insn, rtx condition, rtx_sequence *seq,
 
   /* Record the effect of the instructions that were redundant and which
      we therefore decided not to copy.  */
-  for (i = 1; i < XVECLEN (seq, 0); i++)
+  for (i = 1; i < seq->len (); i++)
     if (redundant[i])
-      update_block (XVECEXP (seq, 0, i), insn);
+      update_block (seq->insn (i), insn);
 
   /* Show the place to which we will be branching.  */
   *pnew_thread = first_active_target_insn (JUMP_LABEL_AS_INSN (seq->insn (0)));
@@ -1460,15 +1460,15 @@ try_merge_delay_insns (rtx insn, rtx_insn *thread)
            {
              rtx_insn *new_rtx;
 
-             update_block (XEXP (merged_insns, 0), thread);
+             update_block (merged_insns->insn (), thread);
              new_rtx = delete_from_delay_slot (merged_insns->insn ());
              if (INSN_DELETED_P (thread))
                thread = new_rtx;
            }
          else
            {
-             update_block (XEXP (merged_insns, 0), thread);
-             delete_related_insns (XEXP (merged_insns, 0));
+             update_block (merged_insns->insn (), thread);
+             delete_related_insns (merged_insns->insn ());
            }
        }
 
@@ -1759,7 +1759,7 @@ own_thread_p (rtx_insn *thread, rtx label, int allow_fallthrough)
    BARRIER in relax_delay_slots.  */
 
 static void
-update_block (rtx insn, rtx where)
+update_block (rtx_insn *insn, rtx where)
 {
   /* Ignore if this was in a delay slot and it came from the target of
      a branch.  */
@@ -1778,7 +1778,7 @@ update_block (rtx insn, rtx where)
    the basic block containing the jump.  */
 
 static int
-reorg_redirect_jump (rtx jump, rtx nlabel)
+reorg_redirect_jump (rtx_insn *jump, rtx nlabel)
 {
   incr_ticks_for_insn (jump);
   return redirect_jump (jump, nlabel, 1);
index eb5374e50b430c9688147f72c61be2fd16f2734f..607baa000e798e2b7c0ae034ec8576d5cbd9ca3c 100644 (file)
@@ -1155,7 +1155,7 @@ mark_target_live_regs (rtx_insn *insns, rtx_insn *target, struct resources *res)
    This should be invoked before the first call to mark_target_live_regs.  */
 
 void
-init_resource_info (rtx epilogue_insn)
+init_resource_info (rtx_insn *epilogue_insn)
 {
   int i;
   basic_block bb;
@@ -1275,7 +1275,7 @@ free_resource_info (void)
 /* Clear any hashed information that we have stored for INSN.  */
 
 void
-clear_hashed_info_for_insn (rtx insn)
+clear_hashed_info_for_insn (rtx_insn *insn)
 {
   struct target_info *tinfo;
 
@@ -1294,7 +1294,7 @@ clear_hashed_info_for_insn (rtx insn)
 /* Increment the tick count for the basic block that contains INSN.  */
 
 void
-incr_ticks_for_insn (rtx insn)
+incr_ticks_for_insn (rtx_insn *insn)
 {
   int b = find_basic_block (insn, MAX_DELAY_SLOT_LIVE_SEARCH);
 
index 633d1ab7f7443951586b6bd494b6f34b11f83b04..5bc30fd3bda2ee28b14b2f1b5077eda30a4be9a9 100644 (file)
@@ -48,10 +48,10 @@ extern void mark_target_live_regs (rtx_insn *, rtx_insn *, struct resources *);
 extern void mark_set_resources (rtx, struct resources *, int,
                                enum mark_resource_type);
 extern void mark_referenced_resources (rtx, struct resources *, bool);
-extern void clear_hashed_info_for_insn (rtx);
-extern void incr_ticks_for_insn (rtx);
+extern void clear_hashed_info_for_insn (rtx_insn *);
+extern void incr_ticks_for_insn (rtx_insn *);
 extern void mark_end_of_function_resources (rtx, bool);
-extern void init_resource_info (rtx);
+extern void init_resource_info (rtx_insn *);
 extern void free_resource_info (void);
 
 #endif /* GCC_RESOURCE_H */