]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
next_cc0_user and prev_cc0_setter scaffolding
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 19 Aug 2014 21:08:18 +0000 (21:08 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Tue, 19 Aug 2014 21:08:18 +0000 (21:08 +0000)
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

* rtl.h (next_cc0_user): Strengthen return type from rtx to
rtx_insn *.
(prev_cc0_setter): Likewise.

* emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
rtx_insn *, adding checked casts for now as necessary.
(prev_cc0_setter): Likewise.

From-SVN: r214196

gcc/ChangeLog
gcc/emit-rtl.c
gcc/rtl.h

index c089c7728153505ccd4c4fd8c429968bf1811d4b..ee05582a1e147801754910e4dfcf8d85e28020f8 100644 (file)
@@ -1,3 +1,13 @@
+2014-08-19  David Malcolm  <dmalcolm@redhat.com>
+
+       * rtl.h (next_cc0_user): Strengthen return type from rtx to
+       rtx_insn *.
+       (prev_cc0_setter): Likewise.
+
+       * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
+       rtx_insn *, adding checked casts for now as necessary.
+       (prev_cc0_setter): Likewise.
+
 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
 
        * expr.h (emit_move_insn): Strengthen return type from rtx to
index ccfa22af48d5acfa61ad8948a3fed418494040e3..0ca59adc4aeb47e13787686443bd8422cc4a6a3a 100644 (file)
@@ -3450,20 +3450,20 @@ prev_active_insn (rtx insn)
 
    Return 0 if we can't find the insn.  */
 
-rtx
+rtx_insn *
 next_cc0_user (rtx insn)
 {
   rtx note = find_reg_note (insn, REG_CC_USER, NULL_RTX);
 
   if (note)
-    return XEXP (note, 0);
+    return safe_as_a <rtx_insn *> (XEXP (note, 0));
 
   insn = next_nonnote_insn (insn);
   if (insn && NONJUMP_INSN_P (insn) && GET_CODE (PATTERN (insn)) == SEQUENCE)
     insn = XVECEXP (PATTERN (insn), 0, 0);
 
   if (insn && INSN_P (insn) && reg_mentioned_p (cc0_rtx, PATTERN (insn)))
-    return insn;
+    return safe_as_a <rtx_insn *> (insn);
 
   return 0;
 }
@@ -3471,18 +3471,18 @@ next_cc0_user (rtx insn)
 /* Find the insn that set CC0 for INSN.  Unless INSN has a REG_CC_SETTER
    note, it is the previous insn.  */
 
-rtx
+rtx_insn *
 prev_cc0_setter (rtx insn)
 {
   rtx note = find_reg_note (insn, REG_CC_SETTER, NULL_RTX);
 
   if (note)
-    return XEXP (note, 0);
+    return safe_as_a <rtx_insn *> (XEXP (note, 0));
 
   insn = prev_nonnote_insn (insn);
   gcc_assert (sets_cc0_p (PATTERN (insn)));
 
-  return insn;
+  return safe_as_a <rtx_insn *> (insn);
 }
 #endif
 
index 64b973204514b365f84be908fa761602d8591be3..a47efd8bdb81013ae4d7ac246422680ec8253aaf 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2440,8 +2440,8 @@ extern rtx_insn *next_real_insn (rtx);
 extern rtx_insn *prev_active_insn (rtx);
 extern rtx_insn *next_active_insn (rtx);
 extern int active_insn_p (const_rtx);
-extern rtx next_cc0_user (rtx);
-extern rtx prev_cc0_setter (rtx);
+extern rtx_insn *next_cc0_user (rtx);
+extern rtx_insn *prev_cc0_setter (rtx);
 
 /* In emit-rtl.c  */
 extern int insn_line (const_rtx);