builtins.c (get_memory_rtx): Properly set MEM alias set and attributes.

* builtins.c (get_memory_rtx): Properly set MEM alias set and
	attributes.

From-SVN: r46732
This commit is contained in:
Richard Kenner 2001-11-03 15:33:45 +00:00 committed by Richard Kenner
parent 13ba36b478
commit 343fb41208
2 changed files with 14 additions and 7 deletions

View file

@ -1,3 +1,8 @@
Sat Nov 3 10:37:56 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* builtins.c (get_memory_rtx): Properly set MEM alias set and
attributes.
2001-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
* doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/tm.texi:

View file

@ -731,7 +731,6 @@ get_memory_rtx (exp)
#endif
mem = gen_rtx_MEM (BLKmode, memory_address (BLKmode, addr));
set_mem_attributes (mem, exp, 0);
/* Get an expression we can use to find the attributes to assign to MEM.
If it is an ADDR_EXPR, use the operand. Otherwise, dereference it if
@ -742,14 +741,17 @@ get_memory_rtx (exp)
exp = TREE_OPERAND (exp, 0);
if (TREE_CODE (exp) == ADDR_EXPR)
exp = TREE_OPERAND (exp, 0);
{
exp = TREE_OPERAND (exp, 0);
set_mem_attributes (mem, exp, 0);
}
else if (POINTER_TYPE_P (TREE_TYPE (exp)))
exp = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (exp)), exp);
else
return mem;
{
exp = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (exp)), exp);
/* memcpy, memset and other builtin stringops can alias with anything. */
set_mem_alias_set (mem, 0);
}
/* memcpy, memset and other builtin stringops can alias with anything. */
set_mem_alias_set (mem, 0);
return mem;
}