(note_addr_stored): A SET or CLOBBER of a BLKmode MEM means that all
memory is clobbered. From-SVN: r7395
This commit is contained in:
parent
058f58ed24
commit
ca800983cb
11
gcc/loop.c
11
gcc/loop.c
@ -2593,6 +2593,10 @@ note_addr_stored (x)
|
|||||||
This affects heuristics in strength_reduce. */
|
This affects heuristics in strength_reduce. */
|
||||||
num_mem_sets++;
|
num_mem_sets++;
|
||||||
|
|
||||||
|
/* BLKmode MEM means all memory is clobbered. */
|
||||||
|
if (GET_MODE (x) == BLKmode)
|
||||||
|
unknown_address_altered = 1;
|
||||||
|
|
||||||
if (unknown_address_altered)
|
if (unknown_address_altered)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -2601,10 +2605,9 @@ note_addr_stored (x)
|
|||||||
&& MEM_IN_STRUCT_P (x) == MEM_IN_STRUCT_P (loop_store_mems[i]))
|
&& MEM_IN_STRUCT_P (x) == MEM_IN_STRUCT_P (loop_store_mems[i]))
|
||||||
{
|
{
|
||||||
/* We are storing at the same address as previously noted. Save the
|
/* We are storing at the same address as previously noted. Save the
|
||||||
wider reference, treating BLKmode as wider. */
|
wider reference. */
|
||||||
if (GET_MODE (x) == BLKmode
|
if (GET_MODE_SIZE (GET_MODE (x))
|
||||||
|| (GET_MODE_SIZE (GET_MODE (x))
|
> GET_MODE_SIZE (GET_MODE (loop_store_mems[i])))
|
||||||
> GET_MODE_SIZE (GET_MODE (loop_store_mems[i]))))
|
|
||||||
loop_store_mems[i] = x;
|
loop_store_mems[i] = x;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user