From: David Malcolm Date: Tue, 19 Aug 2014 19:33:21 +0000 (+0000) Subject: last_call_insn returns an rtx_call_insn * X-Git-Tag: releases/gcc-5.1.0~5349 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=049cfc4a1d602b0d109a0997ba6713cd03249099;p=thirdparty%2Fgcc.git last_call_insn returns an rtx_call_insn * 2014-08-19 David Malcolm * emit-rtl.c (last_call_insn): Strengthen return type from rtx to rtx_call_insn *. * rtl.h (is_a_helper ::test): New overload, accepting an rtx_insn *. (last_call_insn): Strengthen return type from rtx to rtx_call_insn *. From-SVN: r214186 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6b1705e71ca6..d6c75e5d46f7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2014-08-19 David Malcolm + + * emit-rtl.c (last_call_insn): Strengthen return type from rtx to + rtx_call_insn *. + * rtl.h (is_a_helper ::test): New overload, + accepting an rtx_insn *. + (last_call_insn): Strengthen return type from rtx to + rtx_call_insn *. + 2014-08-19 David Malcolm * rtl.h (delete_trivially_dead_insns): Strengthen initial param diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index decd5d6afa94..5b68b1edc960 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 (insn); } /* Find the next insn after INSN that really does something. This routine diff --git a/gcc/rtl.h b/gcc/rtl.h index 84b887042d70..fea663797e3c 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -731,6 +731,14 @@ is_a_helper ::test (rtx rt) return CALL_P (rt); } +template <> +template <> +inline bool +is_a_helper ::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);