rtl.h (rtx_def): Update documentation.
* rtl.h (rtx_def): Update documentation. (MEM_IN_STRUCT_P): Likewise. (MEM_SCALAR_P): New macro. (MEM_COPY_ATTRIBUTES): Likewise. (MEM_SET_IN_STRUCT_P): Likewise. * rtl.texi (MEM_SCALAR_P): Document. * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES. (fixed_scalar_and_varying_struct_p): New function. Use MEM_SCALAR_P rather than !MEM_IN_STRUCT_P. (aliases_everything_p): Likewise. (true_dependence): Use them. (write_dependence_p): New function, containing code common to anti_dependence and output_dependence. (anti_dependence): Use it. (output_dependence): Likewise. * calls.c (save_fixed_argument_area): Don't clear MEM_IN_STRUCT_P. (expand_call): Use MEM_SET_IN_STRUCT_P. (emit_library_call): Don't clear MEM_IN_STRUCT_P. (emit_library_call_value): Likewise. (store_one_arg): Use MEM_SET_IN_STRUCT_P. * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES. (make_extraction): Likewise. (simplify_shift_const): Likewise. (gen_lowpart_for_combine): Likewise. * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES. * emit-rtl.c (operand_subword): Likewise. (change_address): Likewise. * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES. * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES. (emit_group_store): Use MEM_SET_IN_STRUCT_P. (copy_blkmode_from_reg): Likewise. (store_field): Likewise. (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P heuristically. Use MEM_SET_IN_STRUCT_P. (get_memory_rtx): Likewise. * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES. * function.c (assign_stack_temp): Clear MEM_SCALAR_P and MEM_ALIAS_SET on newly returned MEMs. (assign_temp): Use MEM_SET_IN_STRUCT_P. (put_reg_into_stack): Likewise. (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES. (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P. (assign_parms): Likewise. (expand_function): Likewise. * integrate.c (expand_inline_function): Likewise. (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES. * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P. * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES. * print-rtl.c (print_rtx): Print /f for frame_related. * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES. * reload1.c (reload): Copy MEM_SCALAR_P as well. * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P. (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES. * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P. (output_constant_def): Likewise. * a29k.c (a29k_set_memflags_1): Take scalar_p. Set MEM_SCALAR_P. (a29k_set_memflags): Use it. * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES. * c4x.c (c4x_scan_for_ld): Likewise. * h8300.c (fix_bit_operand): Likewise. * m88k.c (legitimize_address): Likewise. (block_move_loop): Likewise. (block_move_no_loop): Likewise. (block_move_sequence): Likewise. (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P. * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise. * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES. * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P. * arm.h (arm_gen_load_multiple): Take scalar_p. (arm_store_load_multiple): Likewise. * arm.c (arm_gen_load_multiple): Likewise. (arm_gen_store_multiple): Likewise. (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P. From-SVN: r24760
This commit is contained in:
parent
c6df88cbec
commit
440b3daeda
@ -1472,7 +1472,8 @@ expand_inline_function (fndecl, parms, target, ignore, type,
|
||||
rtx stack_slot
|
||||
= assign_stack_temp (TYPE_MODE (TREE_TYPE (arg)),
|
||||
int_size_in_bytes (TREE_TYPE (arg)), 1);
|
||||
MEM_IN_STRUCT_P (stack_slot) = AGGREGATE_TYPE_P (TREE_TYPE (arg));
|
||||
MEM_SET_IN_STRUCT_P (stack_slot,
|
||||
AGGREGATE_TYPE_P (TREE_TYPE (arg)));
|
||||
|
||||
store_expr (arg, stack_slot, 0);
|
||||
|
||||
@ -2173,7 +2174,7 @@ expand_inline_function (fndecl, parms, target, ignore, type,
|
||||
target = gen_rtx_MEM (TYPE_MODE (type),
|
||||
memory_address (TYPE_MODE (type),
|
||||
structure_value_addr));
|
||||
MEM_IN_STRUCT_P (target) = 1;
|
||||
MEM_SET_IN_STRUCT_P (target, 1);
|
||||
}
|
||||
|
||||
/* Make sure we free the things we explicitly allocated with xmalloc. */
|
||||
@ -2719,8 +2720,7 @@ copy_rtx_and_substitute (orig, map)
|
||||
copy = rtx_alloc (MEM);
|
||||
PUT_MODE (copy, mode);
|
||||
XEXP (copy, 0) = copy_rtx_and_substitute (XEXP (orig, 0), map);
|
||||
MEM_IN_STRUCT_P (copy) = MEM_IN_STRUCT_P (orig);
|
||||
MEM_VOLATILE_P (copy) = MEM_VOLATILE_P (orig);
|
||||
MEM_COPY_ATTRIBUTES (copy, orig);
|
||||
MEM_ALIAS_SET (copy) = MEM_ALIAS_SET (orig);
|
||||
|
||||
/* If doing function inlining, this MEM might not be const in the
|
||||
|
Loading…
Reference in New Issue
Block a user