diff options
author | David Malcolm <dmalcolm@redhat.com> | 2014-08-19 19:33:21 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2014-08-19 19:33:21 +0000 |
commit | 049cfc4a1d602b0d109a0997ba6713cd03249099 (patch) | |
tree | e3cb405b9257f5c6c89be736b76d5670e264ae84 | |
parent | 169d13f5763dceb0b3aecaa8cc2fbd1200ef86d6 (diff) | |
download | gcc-049cfc4a1d602b0d109a0997ba6713cd03249099.zip gcc-049cfc4a1d602b0d109a0997ba6713cd03249099.tar.gz gcc-049cfc4a1d602b0d109a0997ba6713cd03249099.tar.bz2 |
last_call_insn returns an rtx_call_insn *
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
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 6 | ||||
-rw-r--r-- | gcc/rtl.h | 10 |
3 files changed, 21 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6b1705e..d6c75e5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,14 @@ 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 "insns" from rtx to rtx_insn *. * cse.c (delete_trivially_dead_insns): Likewise, also do it for diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index decd5d6..5b68b1e 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -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 @@ -734,6 +734,14 @@ is_a_helper <rtx_call_insn *>::test (rtx rt) template <> template <> inline bool +is_a_helper <rtx_call_insn *>::test (rtx_insn *insn) +{ + return CALL_P (insn); +} + +template <> +template <> +inline bool is_a_helper <rtx_jump_table_data *>::test (rtx rt) { return JUMP_TABLE_DATA_P (rt); @@ -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); |