Return types of unlink_insn_chain and duplicate_insn_chain
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 19 Aug 2014 21:22:25 +0000 (21:22 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Tue, 19 Aug 2014 21:22:25 +0000 (21:22 +0000)
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

* rtl.h (unlink_insn_chain): Strengthen return type from rtx to
rtx_insn *.
(duplicate_insn_chain): Likewise.
* cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
checked cast for now (until we can strengthen the params in the
same way).
(duplicate_insn_chain): Likewise.

From-SVN: r214197

gcc/ChangeLog
gcc/cfgrtl.c
gcc/rtl.h

index ee05582a1e147801754910e4dfcf8d85e28020f8..ef0673d405afdd4101bc024cd1950d5d63aaf5c1 100644 (file)
@@ -1,3 +1,14 @@
+2014-08-19  David Malcolm  <dmalcolm@redhat.com>
+
+       * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
+       rtx_insn *.
+       (duplicate_insn_chain): Likewise.
+       * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
+       rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
+       checked cast for now (until we can strengthen the params in the
+       same way).
+       (duplicate_insn_chain): Likewise.
+
 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
 
        * rtl.h (next_cc0_user): Strengthen return type from rtx to
index 902de137120f150469efae149aa2fddc56245afd..9c115ba03ceb94a61cd60637ced265acd8bd62f8 100644 (file)
@@ -3303,11 +3303,11 @@ fixup_abnormal_edges (void)
 \f
 /* Cut the insns from FIRST to LAST out of the insns stream.  */
 
-rtx
+rtx_insn *
 unlink_insn_chain (rtx first, rtx last)
 {
-  rtx prevfirst = PREV_INSN (first);
-  rtx nextlast = NEXT_INSN (last);
+  rtx_insn *prevfirst = PREV_INSN (first);
+  rtx_insn *nextlast = NEXT_INSN (last);
 
   SET_PREV_INSN (first) = NULL;
   SET_NEXT_INSN (last) = NULL;
@@ -3319,7 +3319,7 @@ unlink_insn_chain (rtx first, rtx last)
     set_last_insn (prevfirst);
   if (!prevfirst)
     set_first_insn (nextlast);
-  return first;
+  return as_a <rtx_insn *> (first);
 }
 \f
 /* Skip over inter-block insns occurring after BB which are typically
@@ -4080,7 +4080,7 @@ cfg_layout_can_duplicate_bb_p (const_basic_block bb)
   return true;
 }
 
-rtx
+rtx_insn *
 duplicate_insn_chain (rtx from, rtx to)
 {
   rtx insn, next, copy;
@@ -4166,7 +4166,7 @@ duplicate_insn_chain (rtx from, rtx to)
     }
   insn = NEXT_INSN (last);
   delete_insn (last);
-  return insn;
+  return as_a <rtx_insn *> (insn);
 }
 
 /* Create a duplicate of the basic block BB.  */
index a47efd8bdb81013ae4d7ac246422680ec8253aaf..b6a21b63ec9d7c8425519ad25b5723f32d7f1472 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -3099,7 +3099,7 @@ extern void delete_insn (rtx);
 extern rtx_insn *entry_of_function (void);
 extern void emit_insn_at_entry (rtx);
 extern void delete_insn_chain (rtx, rtx, bool);
-extern rtx unlink_insn_chain (rtx, rtx);
+extern rtx_insn *unlink_insn_chain (rtx, rtx);
 extern void delete_insn_and_edges (rtx);
 extern rtx gen_lowpart_SUBREG (enum machine_mode, rtx);
 extern rtx gen_const_mem (enum machine_mode, rtx);
@@ -3175,7 +3175,7 @@ extern int fixup_args_size_notes (rtx, rtx, int);
 
 /* In cfgrtl.c */
 extern void print_rtl_with_bb (FILE *, const_rtx, int);
-extern rtx duplicate_insn_chain (rtx, rtx);
+extern rtx_insn *duplicate_insn_chain (rtx, rtx);
 
 /* In expmed.c */
 extern void init_expmed (void);