[Speex-dev] Compiler warnings with GCC 3.4.4 and perfomance question on a Arm 7

tom abcd tom.abcd at gmail.com
Tue Jan 24 07:33:21 PST 2006


> OK, I forgot to update the ARM4 code. That should definitely be fixed
> (otherwise it's not going to work).

If this is not going to work then why does it work on my Arm?  Any
quick fix I can do for now?

> > The second warning is in ltp_arm4.h in "pitch_xcorr(" getting a warning of:
> > "matching constraint does not allow a register" on the   " __asm__
> > __volatile__ " line.  I have no idea how to fix this warning.
>
> can you give me more info on this?
Not sure what info will help but here it goes...
I am using GCC 3.4.4 compiling ltp.c I get 8 warnings and all of them
seem to be when
"#define OVERRIDE_PITCH_XCORR
static void pitch_xcorr(const spx_word16_t *_x, const spx_word16_t
*_y, spx_word32_t *corr, int len, int nb_pitch, char *stack) "

is included from ltp_arm4.h
The error places the cursor on the          __asm__ __volatile__ (    
 line in the function.   I am compiling with Optimization Level 1.

I did a quick google search and found this where someone else had a
similar problem when switching from 3.2.3 to GCC 3.4.0.
http://gcc.gnu.org/ml/gcc/2004-04/msg01455.html

So what version of GCC are you using?

>
> I have found the performance/MHz of ARM CPUs is extremely variable.
> Given that, the results you're getting may make sense. Just be aware
> that there are still a few float operations left in wideband, so you
> might be hurt a bit by that.
>
Any suggestions as to which functions I should look at for the float
operations to change to Integer?  (assuming it is a simple task to
change the code from float to int or if I can copy how you change the
same kind of statements in the narrowband float to int conversion
otherwise I will probability will not figure it out and will just live
with the performance I have now.)

Thanks
Tom


More information about the Speex-dev mailing list