avr-libc-dev
[Top][All Lists]
Advanced

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

[avr-libc-dev] Re: AW: Register allocator / -fnew-ra issue


From: E. Weddington
Subject: [avr-libc-dev] Re: AW: Register allocator / -fnew-ra issue
Date: Tue, 07 Dec 2004 16:19:27 -0700
User-agent: Mozilla Thunderbird 0.7.3 (Windows/20040803)

Björn Haase wrote:

P.P.S.: Two further examples of compilation results (all with -Os
and -fnew-ra)
IIRC, the new-ra work on GCC is pretty much on hold due to a bunch of
issues. I would highly
recommend that you stay away from it for the time being.

Eric

I have come to the conclusion, that the main possible improvement of avr-gcc
code
efficiency now is the register allocator. I have seen really *weird* code
when using the
default. ... seems mainly to be related to SI objects ...
"-morder1" sometimes.
My experience is that -fnew-ra generates much
better results, in the rare case that it does not make gcc crash :-|, of
course.
I have observed this with both, 4.0 and older versions.

I have some ideas on how to help the register allocator to use the resources
more efficiently. Unfortunately, that would require more substantial changes
in the
compiler ABI.

I'm assuming you mean helping the *current* register allocator? (not -fnew-ra)

<good stuff snipped>

4.)
Adapt the library functions that are written in assembler such that they are
compliant
with the modified ABI.

In my opinion, this way, we could possibly help the RA to make much better
use of the register
file.

*If* it can be shown with good test results, that this would work, then I would be willing to help out with changes to avr-libc. The other developers would have to offer their opinions as well. If is is good enough, then perhaps some of avr-libc could be translated back into C from assembly. IMO, the big issue with changing avr-libc would be the math / floating point library. We could really use someone who has expertise in this area.

Eric




reply via email to

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