The attached patch strengthens both params of fixup_args_size_notes from rtx to 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 r214930.
Index: gcc/ChangeLog =================================================================== --- gcc/ChangeLog (revision 214929) +++ gcc/ChangeLog (revision 214930) @@ -1,5 +1,14 @@ 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 + rtx to rtx_insn *, eliminating a checked cast. + * rtl.h (fixup_args_size_notes): Strengthen first two params from + rtx to rtx_insn *. + +2014-09-05 David Malcolm <dmalc...@redhat.com> + * haifa-sched.c (get_ready_element): Strengthen return type from rtx to rtx_insn *. * sched-int.h (get_ready_element): Likewise. Index: gcc/expr.c =================================================================== --- gcc/expr.c (revision 214929) +++ gcc/expr.c (revision 214930) @@ -3953,9 +3953,8 @@ } int -fixup_args_size_notes (rtx prev, rtx uncast_last, int end_args_size) +fixup_args_size_notes (rtx_insn *prev, rtx_insn *last, int end_args_size) { - rtx_insn *last = safe_as_a <rtx_insn *> (uncast_last); int args_size = end_args_size; bool saw_unknown = false; rtx_insn *insn; Index: gcc/emit-rtl.c =================================================================== --- gcc/emit-rtl.c (revision 214929) +++ gcc/emit-rtl.c (revision 214930) @@ -3756,7 +3756,7 @@ #endif case REG_ARGS_SIZE: - fixup_args_size_notes (NULL_RTX, insn_last, INTVAL (XEXP (note, 0))); + fixup_args_size_notes (NULL, insn_last, INTVAL (XEXP (note, 0))); break; case REG_CALL_DECL: Index: gcc/rtl.h =================================================================== --- gcc/rtl.h (revision 214929) +++ gcc/rtl.h (revision 214930) @@ -3363,7 +3363,7 @@ extern rtx move_by_pieces (rtx, rtx, unsigned HOST_WIDE_INT, unsigned int, int); extern HOST_WIDE_INT find_args_size_adjust (rtx); -extern int fixup_args_size_notes (rtx, rtx, int); +extern int fixup_args_size_notes (rtx_insn *, rtx_insn *, int); /* In cfgrtl.c */ extern void print_rtl_with_bb (FILE *, const rtx_insn *, int);