+2014-08-26 David Malcolm <dmalcolm@redhat.com>
+
+ * function.h (struct sequence_stack): Strengthen fields "first"
+ and "last" from rtx to rtx_insn *.
+ (struct emit_status): Likewise for fields "x_first_insn" and
+ "x_last_insn".
+
+ * emit-rtl.h (get_insns): Remove now-redundant checked cast.
+ (set_first_insn): Add checked cast.
+ (get_last_insn): Remove now-redundant checked cast.
+ (set_last_insn): Add checked cast.
+
+ * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
+ "saved_first" and "saved_last" from rtx to rtx_insn *.
+
2014-08-26 David Malcolm <dmalcolm@redhat.com>
* rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
static int
m32c_leaf_function_p (void)
{
- rtx saved_first, saved_last;
+ rtx_insn *saved_first, *saved_last;
struct sequence_stack *seq;
int rv;
static inline rtx_insn *
get_insns (void)
{
- rtx insn = crtl->emit.x_first_insn;
- return safe_as_a <rtx_insn *> (insn);
+ return crtl->emit.x_first_insn;
}
/* Specify a new insn as the first in the chain. */
set_first_insn (rtx insn)
{
gcc_checking_assert (!insn || !PREV_INSN (insn));
- crtl->emit.x_first_insn = insn;
+ crtl->emit.x_first_insn = safe_as_a <rtx_insn *> (insn);
}
/* Return the last insn emitted in current sequence or current function. */
static inline rtx_insn *
get_last_insn (void)
{
- rtx insn = crtl->emit.x_last_insn;
- return safe_as_a <rtx_insn *> (insn);
+ return crtl->emit.x_last_insn;
}
/* Specify a new insn as the last in the chain. */
set_last_insn (rtx insn)
{
gcc_checking_assert (!insn || !NEXT_INSN (insn));
- crtl->emit.x_last_insn = insn;
+ crtl->emit.x_last_insn = safe_as_a <rtx_insn *> (insn);
}
/* Return a number larger than any instruction's uid in this function. */
struct GTY(()) sequence_stack {
/* First and last insns in the chain of the saved sequence. */
- rtx first;
- rtx last;
+ rtx_insn *first;
+ rtx_insn *last;
struct sequence_stack *next;
};
\f
start_sequence saves both of these on `sequence_stack' and then starts
a new, nested sequence of insns. */
- rtx x_first_insn;
- rtx x_last_insn;
+ rtx_insn *x_first_insn;
+ rtx_insn *x_last_insn;
/* Stack of pending (incomplete) sequences saved by `start_sequence'.
Each element describes one pending sequence.