+2014-08-25 David Malcolm <dmalcolm@redhat.com>
+
+ * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
+ "insn" from rtx to rtx_insn *.
+ (alpha_gp_save_rtx): Likewise for local "seq".
+ (alpha_instantiate_decls): Likewise for local "top".
+ (get_some_local_dynamic_name): Likewise for local "insn".
+ (alpha_does_function_need_gp): Likewise.
+ (set_frame_related_p): Likewise for return type and for locals
+ "seq" and "insn".
+ (emit_frame_store_1): Likewise for local "insn".
+ (alpha_expand_prologue): Likewise for locals "insn", "seq".
+ (alpha_end_function): Likewise for local "insn".
+ (alpha_output_mi_thunk_osf): Likewise.
+ (alphaev4_insn_pipe): Likewise for param "insn".
+ (alphaev5_insn_pipe): Likewise.
+ (alphaev4_next_group): Likewise for return type and param 1
+ "insn".
+ (alphaev5_next_group): Likewise.
+ (alpha_align_insns_1): Likewise for return type and param 1 of
+ callback param "next_group", and for locals "i", "next", "prev",
+ "where", "where2", "insn".
+
2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
* tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
result = alpha_emit_set_const_1 (target, mode, c, i, no_output);
if (result)
{
- rtx insn, set;
+ rtx_insn *insn;
+ rtx set;
if (no_output)
return result;
rtx
alpha_gp_save_rtx (void)
{
- rtx seq, m = cfun->machine->gp_save_rtx;
+ rtx_insn *seq;
+ rtx m = cfun->machine->gp_save_rtx;
if (m == NULL)
{
static int
alpha_ra_ever_killed (void)
{
- rtx top;
+ rtx_insn *top;
if (!has_hard_reg_initial_val (Pmode, REG_RA))
return (int)df_regs_ever_live_p (REG_RA);
static const char *
get_some_local_dynamic_name (void)
{
- rtx insn;
+ rtx_insn *insn;
if (cfun->machine->some_ld_name)
return cfun->machine->some_ld_name;
static int
alpha_does_function_need_gp (void)
{
- rtx insn;
+ rtx_insn *insn;
/* The GP being variable is an OSF abi thing. */
if (! TARGET_ABI_OSF)
/* Helper function to set RTX_FRAME_RELATED_P on instructions, including
sequences. */
-static rtx
+static rtx_insn *
set_frame_related_p (void)
{
- rtx seq = get_insns ();
- rtx insn;
+ rtx_insn *seq = get_insns ();
+ rtx_insn *insn;
end_sequence ();
if (!seq)
- return NULL_RTX;
+ return NULL;
if (INSN_P (seq))
{
emit_frame_store_1 (rtx value, rtx base_reg, HOST_WIDE_INT frame_bias,
HOST_WIDE_INT base_ofs, rtx frame_reg)
{
- rtx addr, mem, insn;
+ rtx addr, mem;
+ rtx_insn *insn;
addr = plus_constant (Pmode, base_reg, base_ofs);
mem = gen_frame_mem (DImode, addr);
/* Register frame procedures save the fp. */
if (alpha_procedure_type == PT_REGISTER)
{
- rtx insn = emit_move_insn (gen_rtx_REG (DImode, vms_save_fp_regno),
- hard_frame_pointer_rtx);
+ rtx_insn *insn =
+ emit_move_insn (gen_rtx_REG (DImode, vms_save_fp_regno),
+ hard_frame_pointer_rtx);
add_reg_note (insn, REG_CFA_REGISTER, NULL);
RTX_FRAME_RELATED_P (insn) = 1;
}
/* If we have to allocate space for outgoing args, do it now. */
if (crtl->outgoing_args_size != 0)
{
- rtx seq
+ rtx_insn *seq
= emit_move_insn (stack_pointer_rtx,
plus_constant
(Pmode, hard_frame_pointer_rtx,
void
alpha_end_function (FILE *file, const char *fnname, tree decl ATTRIBUTE_UNUSED)
{
- rtx insn;
+ rtx_insn *insn;
/* We output a nop after noreturn calls at the very end of the function to
ensure that the return address always remains in the caller's code range,
tree function)
{
HOST_WIDE_INT hi, lo;
- rtx this_rtx, insn, funexp;
+ rtx this_rtx, funexp;
+ rtx_insn *insn;
/* We always require a valid GP. */
emit_insn (gen_prologue_ldgp ());
};
static enum alphaev4_pipe
-alphaev4_insn_pipe (rtx insn)
+alphaev4_insn_pipe (rtx_insn *insn)
{
if (recog_memoized (insn) < 0)
return EV4_STOP;
}
static enum alphaev5_pipe
-alphaev5_insn_pipe (rtx insn)
+alphaev5_insn_pipe (rtx_insn *insn)
{
if (recog_memoized (insn) < 0)
return EV5_STOP;
LEN is, of course, the length of the group in bytes. */
-static rtx
-alphaev4_next_group (rtx insn, int *pin_use, int *plen)
+static rtx_insn *
+alphaev4_next_group (rtx_insn *insn, int *pin_use, int *plen)
{
int len, in_use;
LEN is, of course, the length of the group in bytes. */
-static rtx
-alphaev5_next_group (rtx insn, int *pin_use, int *plen)
+static rtx_insn *
+alphaev5_next_group (rtx_insn *insn, int *pin_use, int *plen)
{
int len, in_use;
static void
alpha_align_insns_1 (unsigned int max_align,
- rtx (*next_group) (rtx, int *, int *),
+ rtx_insn *(*next_group) (rtx_insn *, int *, int *),
rtx (*next_nop) (int *))
{
/* ALIGN is the known alignment for the insn group. */
/* OFS is the offset of the current insn in the insn group. */
int ofs;
int prev_in_use, in_use, len, ldgp;
- rtx i, next;
+ rtx_insn *i, *next;
/* Let shorten branches care for assigning alignments to code labels. */
shorten_branches (get_insns ());
else if ((int) align < len)
{
unsigned int new_log_align = len > 8 ? 4 : 3;
- rtx prev, where;
+ rtx_insn *prev, *where;
where = prev = prev_nonnote_insn (i);
if (!where || !LABEL_P (where))
else if (ofs + len > (int) align)
{
int nop_count = (align - ofs) / 4;
- rtx where;
+ rtx_insn *where;
/* Insert nops before labels, branches, and calls to truly merge
the execution of the nops with the previous instruction group. */
{
if (LABEL_P (where))
{
- rtx where2 = prev_nonnote_insn (where);
+ rtx_insn *where2 = prev_nonnote_insn (where);
if (where2 && JUMP_P (where2))
where = where2;
}
static void
alpha_pad_function_end (void)
{
- rtx insn, next;
+ rtx_insn *insn, *next;
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
{