aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/alpha
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2004-07-04 01:07:15 -0700
committerRichard Henderson <rth@gcc.gnu.org>2004-07-04 01:07:15 -0700
commit8fff4fc136a3e6ab2f4bc3a29241a618b06988be (patch)
treed8e587b078a6e56d763f14d68c29fef196cd5322 /gcc/config/alpha
parent68d22aa55a9a4f491851f37a6a377ed50ea8e292 (diff)
downloadgcc-8fff4fc136a3e6ab2f4bc3a29241a618b06988be.zip
gcc-8fff4fc136a3e6ab2f4bc3a29241a618b06988be.tar.gz
gcc-8fff4fc136a3e6ab2f4bc3a29241a618b06988be.tar.bz2
rtl.def (ADDRESSOF): Remove.
* rtl.def (ADDRESSOF): Remove. * alias.c (rtx_equal_for_memref_p): Don't handle addressof. (find_base_term, memrefs_conflict_p): Likewise. * cse.c (fixed_base_plus_p, find_best_addr: Likewise. (fold_rtx, cse_insn, set_live_p): Likewise. * dwarf2out.c (mem_loc_descriptor): Likewise. (add_location_or_const_value_attribute): Likewise. * emit-rtl.c (copy_insn_1): Likewise. * explow.c (memory_address): Likewise. * expmed.c (store_split_bit_field): Likewise. * expr.c (expand_expr_real_1): Likewise. * function.c (instantiate_decl (instantiate_virtual_regs_1, fix_lexical_addr): Likewise. * genrecog.c (preds, validate_pattern): Likewise. * integrate.c (copy_rtx_and_substitute): Likewise. * recog.c (general_operand, register_operand): Likewise. (memory_address_p): Likwise. * reload1.c (eliminate_regs, elimination_effects): Likewise. * rtl.c (copy_rtx): Likewise. * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise. (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise. * rtlhooks.c (gen_lowpart_general): Likewise. * stmt.c (expand_asm_operands): Likewise. * web.c (entry_register, replace_ref, web_main): Likewise. * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p, alpha_expand_block_move, alpha_expand_block_clear): Likewise. * config/arm/arm.c (thumb_rtx_costs): Likewise. * config/c4x/c4x.c (c4x_valid_operands): Likewise. * config/frv/frv.c (move_destination_operand, move_source_operand, condexec_dest_operand, condexec_source_operand, condexec_memory_operand): Likewise. * config/h8300/h8300.h (PREDICATE_CODES): Likewise. * config/ia64/ia64.c (general_xfmode_operand): Likewise. (destination_xfmode_operand): Likewise. * config/mips/mips.h (PREDICATE_CODES): Likewise. * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise. * config/s390/s390.c (general_s_operand): Likewise. * config/s390/s390.md (mov*): Likewise. * config/sparc/sparc.h (PREDICATE_CODES): Likewise. * c-typeck.c (c_mark_addressable): Don't put_var_into_stack. * expr.c (expand_expr_real_1): Likewise. * stmt.c (expand_decl): Likewise. * config/c4x/c4x.c (c4x_expand_builtin): Likewise. * function.c (struct fixup_replacement, struct insns_for_mem_entry, postponed_insns, put_var_into_stack, put_reg_into_stack, schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement, fixup_var_refs_insns, fixup_var_refs_insns_with_hash, fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg, walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field, gen_mem_addressof, flush_addressof, put_addressof_into_stack, purge_bitfield_addressof_replacements, purge_addressof_replacements, purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp, struct insns_for_mem_walk_info, insns_for_mem_walk, compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect, setjmp_protect_args): Remove. (push_function_context_to): Don't handle var_refs_queue. (pop_function_context_from, free_after_compilation): Likewise. (instantiate_virtual_regs): Don't handle parm_reg_stack_loc. (assign_parms, allocate_struct_function): Likewise. (use_register_for_decl): New. (expand_function_end): Don't setjmp_protect. * function.h (struct emit_status): Update commentary. (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc. (max_parm_reg, parm_reg_stack_loc): Remove. * passes.c (DFI_addressof): Remove. (dump_file_info): Remove addressof. (rest_of_handle_addressof): Remove. (rest_of_compilation): Don't call it. * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove. * stmt.c (expand_decl): Use use_register_for_decl. * tree.h: Update decls. * web.c (mark_addressof): Remove. * doc/invoke.texi (-dF): Remove. ada/ * utils2.c (gnat_mark_addressable): Don't put_var_into_stack. cp/ * typeck.c (cxx_mark_addressable): Don't put_var_into_stack. fortran/ * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack. treelang/ * treetree.c (tree_mark_addressable): Don't put_var_into_stack. From-SVN: r84072
Diffstat (limited to 'gcc/config/alpha')
-rw-r--r--gcc/config/alpha/alpha.c107
1 files changed, 0 insertions, 107 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 23f35eb..0fe8b00 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -806,7 +806,6 @@ input_operand (rtx op, enum machine_mode mode)
&& local_symbolic_operand (XEXP (op, 0), mode));
case REG:
- case ADDRESSOF:
return 1;
case SUBREG:
@@ -1725,9 +1724,6 @@ alpha_legitimate_address_p (enum machine_mode mode, rtx x, int strict)
&& CONSTANT_ADDRESS_P (ofs))
return true;
}
- else if (GET_CODE (x) == ADDRESSOF
- && GET_CODE (ofs) == CONST_INT)
- return true;
}
/* If we're managing explicit relocations, LO_SUM is valid, as
@@ -4486,39 +4482,6 @@ alpha_expand_block_move (rtx operands[])
}
}
- /* Load the entire block into registers. */
- if (GET_CODE (XEXP (orig_src, 0)) == ADDRESSOF)
- {
- enum machine_mode mode;
-
- tmp = XEXP (XEXP (orig_src, 0), 0);
-
- /* Don't use the existing register if we're reading more than
- is held in the register. Nor if there is not a mode that
- handles the exact size. */
- mode = mode_for_size (bytes * BITS_PER_UNIT, MODE_INT, 1);
- if (GET_CODE (tmp) == REG
- && mode != BLKmode
- && GET_MODE_SIZE (GET_MODE (tmp)) >= bytes)
- {
- if (mode == TImode)
- {
- data_regs[nregs] = gen_lowpart (DImode, tmp);
- data_regs[nregs + 1] = gen_highpart (DImode, tmp);
- nregs += 2;
- }
- else
- data_regs[nregs++] = gen_lowpart (mode, tmp);
-
- goto src_done;
- }
-
- /* No appropriate mode; fall back on memory. */
- orig_src = replace_equiv_address (orig_src,
- copy_addr_to_reg (XEXP (orig_src, 0)));
- src_align = GET_MODE_BITSIZE (GET_MODE (tmp));
- }
-
ofs = 0;
if (src_align >= 64 && bytes >= 8)
{
@@ -4603,8 +4566,6 @@ alpha_expand_block_move (rtx operands[])
ofs += 1;
}
- src_done:
-
if (nregs > ARRAY_SIZE (data_regs))
abort ();
@@ -4612,57 +4573,6 @@ alpha_expand_block_move (rtx operands[])
i = 0, ofs = 0;
- if (GET_CODE (XEXP (orig_dst, 0)) == ADDRESSOF)
- {
- enum machine_mode mode;
- tmp = XEXP (XEXP (orig_dst, 0), 0);
-
- mode = mode_for_size (orig_bytes * BITS_PER_UNIT, MODE_INT, 1);
- if (GET_CODE (tmp) == REG && GET_MODE (tmp) == mode)
- {
- if (nregs == 1)
- {
- emit_move_insn (tmp, data_regs[0]);
- i = 1;
- goto dst_done;
- }
-
- else if (nregs == 2 && mode == TImode)
- {
- /* Undo the subregging done above when copying between
- two TImode registers. */
- if (GET_CODE (data_regs[0]) == SUBREG
- && GET_MODE (SUBREG_REG (data_regs[0])) == TImode)
- emit_move_insn (tmp, SUBREG_REG (data_regs[0]));
- else
- {
- rtx seq;
-
- start_sequence ();
- emit_move_insn (gen_lowpart (DImode, tmp), data_regs[0]);
- emit_move_insn (gen_highpart (DImode, tmp), data_regs[1]);
- seq = get_insns ();
- end_sequence ();
-
- emit_no_conflict_block (seq, tmp, data_regs[0],
- data_regs[1], NULL_RTX);
- }
-
- i = 2;
- goto dst_done;
- }
- }
-
- /* ??? If nregs > 1, consider reconstructing the word in regs. */
- /* ??? Optimize mode < dst_mode with strict_low_part. */
-
- /* No appropriate mode; fall back on memory. We can speed things
- up by recognizing extra alignment information. */
- orig_dst = replace_equiv_address (orig_dst,
- copy_addr_to_reg (XEXP (orig_dst, 0)));
- dst_align = GET_MODE_BITSIZE (GET_MODE (tmp));
- }
-
/* Write out the data in whatever chunks reading the source allowed. */
if (dst_align >= 64)
{
@@ -4751,8 +4661,6 @@ alpha_expand_block_move (rtx operands[])
ofs += 1;
}
- dst_done:
-
if (i != nregs)
abort ();
@@ -4798,21 +4706,6 @@ alpha_expand_block_clear (rtx operands[])
align = a, alignofs = 2 - c % 2;
}
}
- else if (GET_CODE (tmp) == ADDRESSOF)
- {
- enum machine_mode mode;
-
- mode = mode_for_size (bytes * BITS_PER_UNIT, MODE_INT, 1);
- if (GET_MODE (XEXP (tmp, 0)) == mode)
- {
- emit_move_insn (XEXP (tmp, 0), const0_rtx);
- return 1;
- }
-
- /* No appropriate mode; fall back on memory. */
- orig_dst = replace_equiv_address (orig_dst, copy_addr_to_reg (tmp));
- align = GET_MODE_BITSIZE (GET_MODE (XEXP (tmp, 0)));
- }
/* Handle an unaligned prefix first. */