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]

Fix to reload bug


This bug caused Ada to not bootstrap on Sparc.  Tested to make sure it fixed
that problem there and then on alphaev56-dec-osf4.0c.

Sat Nov  3 10:37:56 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* reload.c (combine_reloads): Don't combine an output reload if there
	are other reloads around for part of the output.

*** reload.c	2001/10/30 12:41:44	1.169
--- reload.c	2001/11/03 15:17:50
*************** combine_reloads ()
*** 1642,1645 ****
--- 1642,1655 ----
      return;
  
+   /* If there is a reload for part of the address of this operand, we would
+      need to chnage it to RELOAD_FOR_OTHER_ADDRESS.  But that would extend
+      its life to the point where doing this combine would not lower the
+      number of spill registers needed.  */
+   for (i = 0; i < n_reloads; i++)
+     if ((rld[i].when_needed == RELOAD_FOR_OUTPUT_ADDRESS
+ 	 || rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS)
+ 	&& rld[i].opnum == rld[output_reload].opnum)
+       return;
+ 
    /* Check each input reload; can we combine it?  */
  


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