[tremor] Tremor on strongarm CPU

dilb dilb at alrj.org
Mon Sep 9 11:49:56 PDT 2002



> > I did play with compiler flags too, and so far, my best combination is:
> > CFLAGS = -O2 -D_ARM_ASSEM_ -fsigned-char  -D_REENTRANT -ffast-math
> > -mcpu=strongarm1100 -fomit-frame-pointer -fthread-jumps  -fregmove
> > -DUSE_MEMORY_H
> > when using gcc 2.95.4
>
> You should try the following:
>
> CFLAGS=	-O1 -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps \
> 	-fcse-skip-blocks -fexpensive-optimizations -fregmove \
> 	-fschedule-insns2 -finline-functions -fsigned-char \
> 	-fomit-frame-pointer -march=armv4 -mtune=strongarm \
> 	-D_ARM_ASSEM_ -D_REENTRANT -DUSE_MEMORY_H
>
> Surprisingly, using -O1 with the above specific optimization flags produces
> better code and performances than with -O2.  I bet that the 5% gain from
> your own assembly mdct will then vanish.  Please confirm if this is the
> case.
Well, I don't get any improvement using your settings instead of mine, see 
the summary below:

Settings:
        libvorbis libraries are statically linked to a simple player, wav output is 
sent to /dev/null. the player uses always the same FLAGS for gcc. The 
different tests have been randomnly made, i.e. the 3 tests made for 1 case, 
are not made in a row. Results are in x'y''z format i.e. x minutes y seconds 
z hundredth of second. the test file was encoded with oggenc version 1.0 
final (-q 4).

<p>  CFLAGS :   Tremor default   -O2(1)       -O1(2)
DECODER

Dilb         NO TEST          2'32''88     NO TEST
                              2'32''96
                              2'33''01

Tremor       2'31''59         2'28''62     2'30''36
             2'31''71         2'28''78     2'30''46
             2'32''66         2'28''71

Tremor       2'23''57         2'20''95     2'22''66
+ mdct asm   2'23''59         2'21''00     2'22''67
             2'23''73         2'21''16

I did only 2 tests each time with (2).

Note:
(1): CFLAGS = -O2 -D_ARM_ASSEM_ -fsigned-char  -D_REENTRANT -ffast-math \
-mcpu=strongarm1100 -fomit-frame-pointer -fthread-jumps  -fregmove \
-DUSE_MEMORY_H

(2): CFLAGS=	-O1 -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps \
-fcse-skip-blocks -fexpensive-optimizations -fregmove \
-fschedule-insns2 -finline-functions -fsigned-char \
-fomit-frame-pointer -march=armv4 -mtune=strongarm \
-D_ARM_ASSEM_ -D_REENTRANT -DUSE_MEMORY_H

<p>Maybe a test with gcc 3.2 could be interesting, I will send you a mail as 
soon as my release is ready, and you could try it then.

Dilb.
--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'tremor-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Tremor mailing list