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

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

Re: [avr-gcc-list] More observations: array of pointers to functions


From: Paulo Marques
Subject: Re: [avr-gcc-list] More observations: array of pointers to functions
Date: Tue, 27 Feb 2007 16:13:08 +0000
User-agent: Thunderbird 1.5.0.7 (X11/20060909)

David McNab wrote:
On Mon, 2007-02-26 at 13:22 -0700, Eric Weddington wrote:
The line that you have above does some pretty needles math. You should be
able to just simply do:

    fptr = (FuncPtr)pgm_read_word(&funcs_table[i]);

Does that make any difference in the size of your code? It would be
interesting to know one way or the other...

The above option generates a whole lot more code.

I posted my code earlier because I found that while it's not the most
elegant C, it does generate the smallest code with gcc-avr at -O3

It might not make a difference here, but you keep saying things like "but caused severe code bloat, even at -O3."

-O3 is supposed to be _fast_, not _small_. For small code you should use -Os.

For a good size / speed compromise, just use -O2. With -O3 the compiler is allowed to do whatever it needs to do to increase performance, including loop unswitching, more agressive inlining, etc., even if it costs a lot of code size.

As for your particular problem, check the simple code from Joerg Wunsch as it seems to give the most optimal assembly possible for your problem.

--
Paulo Marques
Software Development Department - Grupo PIE, S.A.
Phone: +351 252 290600, Fax: +351 252 290601
Web: www.grupopie.com

"The face of a child can say it all, especially the
mouth part of the face."




reply via email to

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