I has been very quiet on this reflector is anyone still out there?
Has anyone played around with gcc optimizations? Instead of my normal
dhrystone runs I took the jpegsrc.v6b.tar.gz jpeg image
compressor/decompressor and built up a test for the gba.
What is interesting is if I use -O3 or -O2 optimizations on newlib,
libjpeg.a or the application itself the performance stays within a 1%
window meaning -O3 optimizations across the board only gain you 1% or less
than -O2.
The key factor of course is the gba's prefetch buffer, that gives a
performance boost of 27 or so percent. I am using 3/1 timing on the rom...
http://www.dwelch.com/gba/gbajpeg.zip (application source)
http://www.dwelch.com/gba/jpegsrc.v6b.tar.gz (libjpeg.a source)
./configure arm-whatever-elf
./change the makefile to use arm-whatever-elf-gcc instead of just gcc
make libjpeg.a
and save it somewhere
Note the timing results are in the form
INTCOUNT x y
where x is a small number like 1 or 2 and y is a bigger number (perhaps)
x is the number of interrupts or rollovers of the internal counter y is the
remainder
so
INTCOUNT 1 15471
means 1 rollover or 65536 counts
so the total score is 65536*1 + 15471 or 81007 counts on the counter.
The above run without prefetch enabled was
INTCOUNT 1 38320
or 103856 counts which is 28% slower...
Just curious to see if anyone else has done these types of comparisons with
real applications.
David