PATCH commited to dataflow branch.

Kenneth Zadeck zadeck@naturalbridge.com
Mon Jul 3 00:18:00 GMT 2006


David Edelsohn wrote:
>>>>>> Kenneth Zadeck writes:
>>>>>>             
>
>   
>> I do not believe that what we have done in this patch is the best way to
>> go because it requires support in the legitimate_address implementation
>> in the port to stop something that has nothing to do with the port. 
>>     
>
> 	This statement is making incorrect assertions that do not match
> what the patch actually is doing.  The reload part of the patch may be
> incorrect, but please do not mischaracterize it from the beginning.
>
> 	The reload patch simply does not allow the operands of PRE_MODIFY,
> which are related with the same pseudo, to have elimination applied
> separately.
>
> 	If elimination is applied to both operands and an invalid address
> is created, legitimate_address should kick it out later.  It always is the
> responsibility of the port to specify what addressing forms are
> legitimate.  The current behavior of reload allows other invalid addresses
> not involving PRE_MODIFY to be formed at that same point and
> legitimate_address discovers the problem later, so this is not doing
> anything new.  The port is the only place in the compiler with knowledge
> to determine if an address like this is invalid.  Also, elimination could
> create a valid address.
>
>   
The issue here is that on NO architecture COULD IT EVER  be possible to
have this substitution be correct.  It has nothing to do with the
addressing modes available on the machine.  Given that it could NEVER be
correct, it seems silly to have to have each port which can do a PRE or
POST MODIFY have to add this magic to its implementation of legitimate
address. 
> David
>
>   



More information about the Gcc-patches mailing list