]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
last_call_insn returns an rtx_call_insn *
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 19 Aug 2014 19:33:21 +0000 (19:33 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Tue, 19 Aug 2014 19:33:21 +0000 (19:33 +0000)
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

* emit-rtl.c (last_call_insn): Strengthen return type from rtx to
rtx_call_insn *.
* rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
accepting an rtx_insn *.
(last_call_insn): Strengthen return type from rtx to
rtx_call_insn *.

From-SVN: r214186

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

index 6b1705e71ca69a5841dbc275519efbbeb4d4d2ce..d6c75e5d46f7058a266db1e55965d4a3fbd7f702 100644 (file)
@@ -1,3 +1,12 @@
+2014-08-19  David Malcolm  <dmalcolm@redhat.com>
+
+       * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
+       rtx_call_insn *.
+       * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
+       accepting an rtx_insn *.
+       (last_call_insn): Strengthen return type from rtx to
+       rtx_call_insn *.
+
 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
 
        * rtl.h (delete_trivially_dead_insns): Strengthen initial param
index decd5d6afa9488dda43daad8834a408d04d23ac5..5b68b1edc96042276f677a8911cabfa113b6d173 100644 (file)
@@ -3382,17 +3382,17 @@ prev_real_insn (rtx insn)
 /* Return the last CALL_INSN in the current list, or 0 if there is none.
    This routine does not look inside SEQUENCEs.  */
 
-rtx
+rtx_call_insn *
 last_call_insn (void)
 {
-  rtx insn;
+  rtx_insn *insn;
 
   for (insn = get_last_insn ();
        insn && !CALL_P (insn);
        insn = PREV_INSN (insn))
     ;
 
-  return insn;
+  return safe_as_a <rtx_call_insn *> (insn);
 }
 
 /* Find the next insn after INSN that really does something.  This routine
index 84b887042d708ecf5acfbc88e557cc4e01c0427e..fea663797e3cf5fe882fc20644521581a367be13 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -731,6 +731,14 @@ is_a_helper <rtx_call_insn *>::test (rtx rt)
   return CALL_P (rt);
 }
 
+template <>
+template <>
+inline bool
+is_a_helper <rtx_call_insn *>::test (rtx_insn *insn)
+{
+  return CALL_P (insn);
+}
+
 template <>
 template <>
 inline bool
@@ -2416,7 +2424,7 @@ extern rtx gen_use (rtx);
 extern rtx emit_use (rtx);
 extern rtx make_insn_raw (rtx);
 extern void add_function_usage_to (rtx, rtx);
-extern rtx last_call_insn (void);
+extern rtx_call_insn *last_call_insn (void);
 extern rtx_insn *previous_insn (rtx);
 extern rtx_insn *next_insn (rtx);
 extern rtx_insn *prev_nonnote_insn (rtx);