From 2bb16349067f9dd8feea38c3e1d689042bcbebd7 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 22 Jul 2004 11:13:47 -0700 Subject: [PATCH] * expr.c (emit_push_insn): Don't use set_mem_attributes. From-SVN: r85054 --- gcc/ChangeLog | 4 ++++ gcc/expr.c | 33 ++++++++++++++------------------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3c7cc552fd2..53fdc1d9da8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2004-07-22 Richard Henderson + + * expr.c (emit_push_insn): Don't use set_mem_attributes. + 2004-07-22 Richard Henderson * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used diff --git a/gcc/expr.c b/gcc/expr.c index 348d286c97e..d8ab443e913 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -3250,16 +3250,11 @@ emit_push_insn (rtx x, enum machine_mode mode, tree type, rtx size, target = gen_rtx_MEM (BLKmode, temp); - if (type != 0) - { - set_mem_attributes (target, type, 1); - /* Function incoming arguments may overlap with sibling call - outgoing arguments and we cannot allow reordering of reads - from function arguments with stores to outgoing arguments - of sibling calls. */ - set_mem_alias_set (target, 0); - } - + /* We do *not* set_mem_attributes here, because incoming arguments + may overlap with sibling call outgoing arguments and we cannot + allow reordering of reads from function arguments with stores + to outgoing arguments of sibling calls. We do, however, want + to record the alignment of the stack slot. */ /* ALIGN may well be better aligned than TYPE, e.g. due to PARM_BOUNDARY. Assume the caller isn't lying. */ set_mem_align (target, align); @@ -3355,15 +3350,15 @@ emit_push_insn (rtx x, enum machine_mode mode, tree type, rtx size, addr = memory_address (mode, gen_rtx_PLUS (Pmode, args_addr, args_so_far)); dest = gen_rtx_MEM (mode, addr); - if (type != 0) - { - set_mem_attributes (dest, type, 1); - /* Function incoming arguments may overlap with sibling call - outgoing arguments and we cannot allow reordering of reads - from function arguments with stores to outgoing arguments - of sibling calls. */ - set_mem_alias_set (dest, 0); - } + + /* We do *not* set_mem_attributes here, because incoming arguments + may overlap with sibling call outgoing arguments and we cannot + allow reordering of reads from function arguments with stores + to outgoing arguments of sibling calls. We do, however, want + to record the alignment of the stack slot. */ + /* ALIGN may well be better aligned than TYPE, e.g. due to + PARM_BOUNDARY. Assume the caller isn't lying. */ + set_mem_align (dest, align); emit_move_insn (dest, x); } -- 2.30.2