ADDRESSOF problems

Richard Henderson rth@cygnus.com
Wed Oct 28 16:54:00 GMT 1998


On Wed, Oct 28, 1998 at 11:19:26AM +0100, Andreas Schwab wrote:
> |> Surely you meant to clear the replacement list on every insn?
> 
> I don't think that it matters.  On the other hand, if a reg note can refer
> to an addressof that occurs in a different insn then it may need to find
> its replacement.  I'm not sure about this.

I went ahead and committed the change with the replacement list
cleared every insn. 

My thinking here is that if a reg was replaced two different ways
on two different insns, we might grab the wrong replacement from
the list.  Furthermore, if it is the case that such a reg note is
created on a different insn, I don't have high confidence that we
wouldn't be missing something in the interim, since this could be
many basic blocks later.  Clearing the list means we'll at least
get an abort when such a case arises, and we can study the situation
then.


r~


Wed Oct 28 16:46:07 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
    
        * function.c (purge_addressof_1): Instead of aborting when a
        bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
        work just put the ADDRESSOF on stack.  Otherwise remember all such
        successfull replacements, so that exactly the same replacements
        can be made on the REG_NOTEs.  Remove the special case for CALL
        insns again.
        (purge_addressof_replacements): New variable.
        (purge_addressof): Clear it at end.



More information about the Gcc-patches mailing list