avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] compiler improvments


From: HutchinsonAndy
Subject: Re: [avr-gcc-list] compiler improvments
Date: Sat, 10 Jan 2004 10:54:25 -0500

I am looking at the structure problems. Seems there are several issues.

The compiler is trying to use a DI sized variable to hold structure - 8 bytes. 
I am not sure why but perhaps it attempst to hold all structures in registers 
and it has not been told that a DI register is not a good idea.

Size DI moves are not defined for avr target, it is using QI moves (bytes 
moves) - which is reasonable

I beleive it wants to use a temporary DI register in order to return the value 
in the right registers. This may be because of the overlap.

The extra stack variable is simple padding out 6 bytes of structure to 8. 
Compiler did not spot that subregister was unused.

The unwanted push/pop occurs somewhere in reload. R8 get assigned by global 
register allocation. However, it is latter replaced by R13 (on my build). The 
GCC part that marks the register as "live" does not get updated. Hence the 
problem.
I am trying to find out what part of code does this.

I am glad to see bug report is in on this one!

I may well be able to do something about the other problems. It would seem that 
curing the "DI" allocation and movement will cause all the other issues to go 
away.






__________________________________________________________________
New! Unlimited Netscape Internet Service.
Only $9.95 a month -- Sign up today at http://isp.netscape.com/register
Act now to get a personalized email address!

Netscape. Just the Net You Need.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]