Commit 9ad91d71 by Richard Kenner

(canon_hash, cse_insn): MEM is not unchanging if it is in the frame (since

the temp slot might be reused).

From-SVN: r12562
parent 7c225e88
...@@ -1945,7 +1945,7 @@ canon_hash (x, mode) ...@@ -1945,7 +1945,7 @@ canon_hash (x, mode)
do_not_record = 1; do_not_record = 1;
return 0; return 0;
} }
if (! RTX_UNCHANGING_P (x)) if (! RTX_UNCHANGING_P (x) || FIXED_BASE_PLUS_P (XEXP (x, 0)))
{ {
hash_arg_in_memory = 1; hash_arg_in_memory = 1;
if (MEM_IN_STRUCT_P (x)) hash_arg_in_struct = 1; if (MEM_IN_STRUCT_P (x)) hash_arg_in_struct = 1;
...@@ -7377,7 +7377,9 @@ cse_insn (insn, in_libcall_block) ...@@ -7377,7 +7377,9 @@ cse_insn (insn, in_libcall_block)
elt = insert (dest, sets[i].src_elt, elt = insert (dest, sets[i].src_elt,
sets[i].dest_hash, GET_MODE (dest)); sets[i].dest_hash, GET_MODE (dest));
elt->in_memory = (GET_CODE (sets[i].inner_dest) == MEM elt->in_memory = (GET_CODE (sets[i].inner_dest) == MEM
&& ! RTX_UNCHANGING_P (sets[i].inner_dest)); && (! RTX_UNCHANGING_P (sets[i].inner_dest)
|| FIXED_BASE_PLUS_P (XEXP (sets[i].inner_dest,
0))));
if (elt->in_memory) if (elt->in_memory)
{ {
......
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