Commit ec569656 by Richard Kenner Committed by Richard Kenner

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
parent 23cb1766
...@@ -13,6 +13,9 @@ Sun Sep 17 18:48:32 2000 Denis Chertykov <denisc@overta.ru> ...@@ -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) ...@@ -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)
......
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