The attached patch strengthens the 2nd and 3rd params of modified_between_p from const_rtx to const rtx_insn * (eliminating a checked cast), and thus falls under the pre-approval granted by Jeff here: https://gcc.gnu.org/ml/gcc-patches/2014-08/msg01310.html
Bootstrapped on x86_64-unknown-linux-gnu (Fedora 20), and has been rebuilt as part of a config-list.mk build for all working configurations (albeit with other patches for the latter case). Committed to trunk as r214931.
Index: gcc/rtlanal.c =================================================================== --- gcc/rtlanal.c (revision 214930) +++ gcc/rtlanal.c (revision 214931) @@ -987,10 +987,8 @@ X contains a MEM; this routine does use memory aliasing. */ int -modified_between_p (const_rtx x, const_rtx uncast_start, const_rtx end) +modified_between_p (const_rtx x, const rtx_insn *start, const rtx_insn *end) { - const rtx_insn *start = - safe_as_a <const rtx_insn *> (uncast_start); const enum rtx_code code = GET_CODE (x); const char *fmt; int i, j; Index: gcc/ChangeLog =================================================================== --- gcc/ChangeLog (revision 214930) +++ gcc/ChangeLog (revision 214931) @@ -1,5 +1,12 @@ 2014-09-05 David Malcolm <dmalc...@redhat.com> + * rtl.h (modified_between_p): Strengthen params 2 and 3 from + const_rtx to const rtx_insn *. + * rtlanal.c (modified_between_p): Likewise, eliminating a checked + cast. + +2014-09-05 David Malcolm <dmalc...@redhat.com> + * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to fixup_args_size_notes. * expr.c (fixup_args_size_notes): Strengthen first two params from Index: gcc/rtl.h =================================================================== --- gcc/rtl.h (revision 214930) +++ gcc/rtl.h (revision 214931) @@ -2743,7 +2743,7 @@ extern int reg_set_between_p (const_rtx, const_rtx, const_rtx); extern int commutative_operand_precedence (rtx); extern bool swap_commutative_operands_p (rtx, rtx); -extern int modified_between_p (const_rtx, const_rtx, const_rtx); +extern int modified_between_p (const_rtx, const rtx_insn *, const rtx_insn *); extern int no_labels_between_p (const rtx_insn *, const rtx_insn *); extern int modified_in_p (const_rtx, const_rtx); extern int reg_set_p (const_rtx, const_rtx);