This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Change to readonly conflict handling


This is a patch I didn't like putting in because it will pessimize the
code slightly, but I don't see any way around it.  Other approaches
are very much welcome.

Sun Sep 17 11:45:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* alias.c (true_dependence): Allow non-unchanging read to conflict
	with unchanging write.

*** alias.c	2000/09/14 04:47:48	1.100
--- alias.c	2000/09/17 14:28:37
*************** true_dependence (mem, mem_mode, x, varie
*** 1601,1608 ****
       An unchanging read can conflict with an unchanging write since
       there may be a single store to this address to initialize it.
       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))
      return 0;
  
--- 1601,1611 ----
       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))
      return 0;
  

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]