Commit 2bb16349 by Richard Henderson Committed by Richard Henderson

* expr.c (emit_push_insn): Don't use set_mem_attributes.

From-SVN: r85054
parent 312bc278
2004-07-22 Richard Henderson <rth@redhat.com> 2004-07-22 Richard Henderson <rth@redhat.com>
* expr.c (emit_push_insn): Don't use set_mem_attributes.
2004-07-22 Richard Henderson <rth@redhat.com>
* tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
variables due to conditional compilation. variables due to conditional compilation.
......
...@@ -3250,16 +3250,11 @@ emit_push_insn (rtx x, enum machine_mode mode, tree type, rtx size, ...@@ -3250,16 +3250,11 @@ emit_push_insn (rtx x, enum machine_mode mode, tree type, rtx size,
target = gen_rtx_MEM (BLKmode, temp); target = gen_rtx_MEM (BLKmode, temp);
if (type != 0) /* We do *not* set_mem_attributes here, because incoming arguments
{ may overlap with sibling call outgoing arguments and we cannot
set_mem_attributes (target, type, 1); allow reordering of reads from function arguments with stores
/* Function incoming arguments may overlap with sibling call to outgoing arguments of sibling calls. We do, however, want
outgoing arguments and we cannot allow reordering of reads to record the alignment of the stack slot. */
from function arguments with stores to outgoing arguments
of sibling calls. */
set_mem_alias_set (target, 0);
}
/* ALIGN may well be better aligned than TYPE, e.g. due to /* ALIGN may well be better aligned than TYPE, e.g. due to
PARM_BOUNDARY. Assume the caller isn't lying. */ PARM_BOUNDARY. Assume the caller isn't lying. */
set_mem_align (target, align); set_mem_align (target, align);
...@@ -3355,15 +3350,15 @@ emit_push_insn (rtx x, enum machine_mode mode, tree type, rtx size, ...@@ -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, addr = memory_address (mode, gen_rtx_PLUS (Pmode, args_addr,
args_so_far)); args_so_far));
dest = gen_rtx_MEM (mode, addr); dest = gen_rtx_MEM (mode, addr);
if (type != 0)
{ /* We do *not* set_mem_attributes here, because incoming arguments
set_mem_attributes (dest, type, 1); may overlap with sibling call outgoing arguments and we cannot
/* Function incoming arguments may overlap with sibling call allow reordering of reads from function arguments with stores
outgoing arguments and we cannot allow reordering of reads to outgoing arguments of sibling calls. We do, however, want
from function arguments with stores to outgoing arguments to record the alignment of the stack slot. */
of sibling calls. */ /* ALIGN may well be better aligned than TYPE, e.g. due to
set_mem_alias_set (dest, 0); PARM_BOUNDARY. Assume the caller isn't lying. */
} set_mem_align (dest, align);
emit_move_insn (dest, x); emit_move_insn (dest, x);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment