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>
|
||||
|
||||
* alias.c (true_dependence): Allow non-unchanging read to conflict
|
||||
with unchanging write.
|
||||
|
||||
* expr.c (store_constructor_field): Accept ALIAS_SET arg.
|
||||
(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.
|
||||
An unchanging read can conflict with an unchanging write since
|
||||
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.
|
||||
This won't handle all cases optimally, but the possible performance
|
||||
loss should be negligible. */
|
||||
if (RTX_UNCHANGING_P (x) != RTX_UNCHANGING_P (mem))
|
||||
if (RTX_UNCHANGING_P (x) && ! RTX_UNCHANGING_P (mem))
|
||||
return 0;
|
||||
|
||||
if (mem_mode == VOIDmode)
|
||||
|
Loading…
Reference in New Issue
Block a user