jump.c: Use rtx_insn in a few places (also touches rtl.h and cfgexpand.c)
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 22 Aug 2014 18:03:59 +0000 (18:03 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Fri, 22 Aug 2014 18:03:59 +0000 (18:03 +0000)
gcc/
* rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
rtx_insn *.
(rebuild_jump_labels_chain): Likewise for param "chain".

* cfgexpand.c (pass_expand::execute): Add checked cast to
rtx_insn * when calling rebuild_jump_labels_chain in region where
we know e->insns.r is non-NULL.

* jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
rtx_insn *.
(rebuild_jump_labels): Likewise.
(rebuild_jump_labels_chain): Likewise for param "chain".
(cleanup_barriers): Likewise for locals "insn", "next", "prev".
(init_label_info): Likewise for param "f".
(maybe_propagate_label_ref): Likewise for params "jump_insn",
"prev_nonjump_insn".
(mark_all_labels): Likewise for param "f" and locals "insn",
"prev_nonjump_insn".

From-SVN: r214341

gcc/ChangeLog
gcc/cfgexpand.c
gcc/jump.c
gcc/rtl.h

index 950ac49bc1a5e6c0ecbd0503f9f52ea0491664ff..505e8ed29087aa861ad463563f505b286cc8bf95 100644 (file)
@@ -1,3 +1,24 @@
+2014-08-22  David Malcolm  <dmalcolm@redhat.com>
+
+       * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
+       rtx_insn *.
+       (rebuild_jump_labels_chain): Likewise for param "chain".
+
+       * cfgexpand.c (pass_expand::execute): Add checked cast to
+       rtx_insn * when calling rebuild_jump_labels_chain in region where
+       we know e->insns.r is non-NULL.
+
+       * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
+       rtx_insn *.
+       (rebuild_jump_labels): Likewise.
+       (rebuild_jump_labels_chain): Likewise for param "chain".
+       (cleanup_barriers): Likewise for locals "insn", "next", "prev".
+       (init_label_info): Likewise for param "f".
+       (maybe_propagate_label_ref): Likewise for params "jump_insn",
+       "prev_nonjump_insn".
+       (mark_all_labels): Likewise for param "f" and locals "insn",
+       "prev_nonjump_insn".
+
 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
 
        * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
index 0ed6d4fc533fda434d4a8e02cab9afb35ffeb615..16762941a35199ffc0b6778901fe2b068aa5ca99 100644 (file)
@@ -5865,7 +5865,7 @@ pass_expand::execute (function *fun)
        {
          if (e->insns.r)
            {
-             rebuild_jump_labels_chain (e->insns.r);
+             rebuild_jump_labels_chain (as_a <rtx_insn *> (e->insns.r));
              /* Put insns after parm birth, but before
                 NOTE_INSNS_FUNCTION_BEG.  */
              if (e->src == ENTRY_BLOCK_PTR_FOR_FN (fun)
index b195b8544bb0b7beb46b2c08013c3eeb16a35c26..cc0eb02852705e24a4471ae56865b989d9776e55 100644 (file)
@@ -62,8 +62,8 @@ along with GCC; see the file COPYING3.  If not see
    or even change what is live at any point.
    So perhaps let combiner do it.  */
 
-static void init_label_info (rtx);
-static void mark_all_labels (rtx);
+static void init_label_info (rtx_insn *);
+static void mark_all_labels (rtx_insn *);
 static void mark_jump_label_1 (rtx, rtx, bool, bool);
 static void mark_jump_label_asm (rtx, rtx);
 static void redirect_exp_1 (rtx *, rtx, rtx, rtx);
@@ -72,7 +72,7 @@ static int returnjump_p_1 (rtx *, void *);
 \f
 /* Worker for rebuild_jump_labels and rebuild_jump_labels_chain.  */
 static void
-rebuild_jump_labels_1 (rtx f, bool count_forced)
+rebuild_jump_labels_1 (rtx_insn *f, bool count_forced)
 {
   rtx insn;
 
@@ -96,7 +96,7 @@ rebuild_jump_labels_1 (rtx f, bool count_forced)
    instructions and jumping insns that have labels as operands
    (e.g. cbranchsi4).  */
 void
-rebuild_jump_labels (rtx f)
+rebuild_jump_labels (rtx_insn *f)
 {
   rebuild_jump_labels_1 (f, true);
 }
@@ -105,7 +105,7 @@ rebuild_jump_labels (rtx f)
    forced_labels.  It can be used on insn chains that aren't the 
    main function chain.  */
 void
-rebuild_jump_labels_chain (rtx chain)
+rebuild_jump_labels_chain (rtx_insn *chain)
 {
   rebuild_jump_labels_1 (chain, false);
 }
@@ -121,12 +121,12 @@ rebuild_jump_labels_chain (rtx chain)
 static unsigned int
 cleanup_barriers (void)
 {
-  rtx insn;
+  rtx_insn *insn;
   for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
     {
       if (BARRIER_P (insn))
        {
-         rtx prev = prev_nonnote_insn (insn);
+         rtx_insn *prev = prev_nonnote_insn (insn);
          if (!prev)
            continue;
 
@@ -134,7 +134,7 @@ cleanup_barriers (void)
            {
              /* Make sure we do not split a call and its corresponding
                 CALL_ARG_LOCATION note.  */
-             rtx next = NEXT_INSN (prev);
+             rtx_insn *next = NEXT_INSN (prev);
 
              if (NOTE_P (next)
                  && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION)
@@ -191,9 +191,9 @@ make_pass_cleanup_barriers (gcc::context *ctxt)
    notes whose labels don't occur in the insn any more.  */
 
 static void
-init_label_info (rtx f)
+init_label_info (rtx_insn *f)
 {
-  rtx insn;
+  rtx_insn *insn;
 
   for (insn = f; insn; insn = NEXT_INSN (insn))
     {
@@ -229,7 +229,7 @@ init_label_info (rtx f)
    load into a jump_insn that uses it.  */
 
 static void
-maybe_propagate_label_ref (rtx jump_insn, rtx prev_nonjump_insn)
+maybe_propagate_label_ref (rtx_insn *jump_insn, rtx_insn *prev_nonjump_insn)
 {
   rtx label_note, pc, pc_src;
 
@@ -277,9 +277,9 @@ maybe_propagate_label_ref (rtx jump_insn, rtx prev_nonjump_insn)
    Combine consecutive labels, and count uses of labels.  */
 
 static void
-mark_all_labels (rtx f)
+mark_all_labels (rtx_insn *f)
 {
-  rtx insn;
+  rtx_insn *insn;
 
   if (current_ir_type () == IR_RTL_CFGLAYOUT)
     {
@@ -309,7 +309,7 @@ mark_all_labels (rtx f)
     }
   else
     {
-      rtx prev_nonjump_insn = NULL;
+      rtx_insn *prev_nonjump_insn = NULL;
       for (insn = f; insn; insn = NEXT_INSN (insn))
        {
          if (INSN_DELETED_P (insn))
index 23446fcde03676f71fcda63c74d47604b58d213f..acd0be954654f0cb3dde7a0878a39aa8c8bd0cb6 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -3056,8 +3056,8 @@ extern unsigned int reg_or_subregno (const_rtx);
 extern int redirect_jump_1 (rtx, rtx);
 extern void redirect_jump_2 (rtx, rtx, rtx, int, int);
 extern int redirect_jump (rtx, rtx, int);
-extern void rebuild_jump_labels (rtx);
-extern void rebuild_jump_labels_chain (rtx);
+extern void rebuild_jump_labels (rtx_insn *);
+extern void rebuild_jump_labels_chain (rtx_insn *);
 extern rtx reversed_comparison (const_rtx, enum machine_mode);
 extern enum rtx_code reversed_comparison_code (const_rtx, const_rtx);
 extern enum rtx_code reversed_comparison_code_parts (enum rtx_code, const_rtx,