RELOAD_OTHER bug?

DJ Delorie dj@redhat.com
Tue Dec 13 21:21:00 GMT 2005


> >Does this mean that RELOAD_FOR_OTHER_ADDRESS reloads can never be
> >merged with RELOAD_OTHER reloads?
> >  
> Yes.  But if they load the same value as a RELOAD_OTHER input, they can 
> share the same reload register.

So why does reload specifically check for RELOAD_FOR_OTHER_ADDRESS
when deciding if a merge to RELOAD_OTHER is permitted?  Is this a bug
in the current logic?

	  for (j = 0; j < n_reloads; j++)
	    if (i != j && rld[j].reg_rtx != 0
		&& rtx_equal_p (rld[i].reg_rtx, rld[j].reg_rtx)
		&& (! conflicting_input
		    || rld[j].when_needed == RELOAD_FOR_INPUT_ADDRESS
		    || rld[j].when_needed == RELOAD_FOR_OTHER_ADDRESS))
	      {
		rld[i].when_needed = RELOAD_OTHER;
		rld[j].in = 0;
		reload_spill_index[j] = -1;
		transfer_replacements (i, j);



More information about the Gcc mailing list