mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-17 03:28:53 +08:00
alias.c (true_dependence): Allow non-unchanging read to conflict with unchanging write.
* alias.c (true_dependence): Allow non-unchanging read to conflict with unchanging write. From-SVN: r36476
This commit is contained in:
parent
23cb1766e0
commit
ec56965643
@ -13,6 +13,9 @@ Sun Sep 17 18:48:32 2000 Denis Chertykov <denisc@overta.ru>
|
|||||||
|
|
||||||
Sun Sep 17 10:46:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
Sun Sep 17 10:46:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||||
|
|
||||||
|
* alias.c (true_dependence): Allow non-unchanging read to conflict
|
||||||
|
with unchanging write.
|
||||||
|
|
||||||
* expr.c (store_constructor_field): Accept ALIAS_SET arg.
|
* expr.c (store_constructor_field): Accept ALIAS_SET arg.
|
||||||
(store_constructor): Pass alias_set to it.
|
(store_constructor): Pass alias_set to it.
|
||||||
|
|
||||||
|
@ -1600,10 +1600,13 @@ true_dependence (mem, mem_mode, x, varies)
|
|||||||
A non-unchanging read can conflict with a non-unchanging write.
|
A non-unchanging read can conflict with a non-unchanging write.
|
||||||
An unchanging read can conflict with an unchanging write since
|
An unchanging read can conflict with an unchanging write since
|
||||||
there may be a single store to this address to initialize it.
|
there may be a single store to this address to initialize it.
|
||||||
|
Note that an unchanging store can conflict with a non-unchanging read
|
||||||
|
since we have to make conservative assumptions when we have a
|
||||||
|
record with readonly fields and we are copying the whole thing.
|
||||||
Just fall through to the code below to resolve potential conflicts.
|
Just fall through to the code below to resolve potential conflicts.
|
||||||
This won't handle all cases optimally, but the possible performance
|
This won't handle all cases optimally, but the possible performance
|
||||||
loss should be negligible. */
|
loss should be negligible. */
|
||||||
if (RTX_UNCHANGING_P (x) != RTX_UNCHANGING_P (mem))
|
if (RTX_UNCHANGING_P (x) && ! RTX_UNCHANGING_P (mem))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (mem_mode == VOIDmode)
|
if (mem_mode == VOIDmode)
|
||||||
|
Loading…
Reference in New Issue
Block a user