[oe] iwmmxt optimization on PXA270 (dejagnu test report)

Hasjim Williams openembedded-devel at lists.futaris.org
Wed Mar 26 01:39:35 UTC 2008


On Sun, 23 Mar 2008 19:01:33 +0100, "Stanislav Brabec" <utx at penguin.cz>
said:

> I tested gcc-4.2.2-r6 with -march=iwmmxt -mcpu=iwmmxt -mtune=iwmmxt on
> my image compiled for iwmmxt.
> 
> Results seems to be promising. 99.99% tests passed. Results for Fortran
> are invalid (I had not libgfortran in the system). Surprisingly, all
> g++.dg/eh (exception handling) tests PASSed.

I was a bit surprised that all the exception handling tests PASSed, but
then I realised that there is no code to test exceptions on iwmmxt in
that directory:

tmp/work/ep9312-angstrom-linux-gnueabi/gcc-cross-4.2.2-r6/gcc-4.2.6/gcc/testsuite/g++.dg/eh/

The only unwind tester is arm-vfp-unwind.C , which is for the VFP
coprocessor and floats, doubles, etc on VFP.

iwmmxt should make use of uint64 / uint32, and simd .  I think simd-1 &
simd-2 are only run for x86 machines with MMX.  We probably need
something similar to test the popping of iwmmx data/control registers.

I suspect we may need to write a quick test app to check for this error
/ testcase...

The other reason why some iwmmxt compiled apps are segfaulting is that
something in iwmmxt support is missing.  Whilst the gcc testcases cover
most of the major tests, sometimes we need to add extra test cases for
100% test visibility.  I suspect that if gcc tries to do a
Unwind_VRS_Pop and get the NOT_IMPLEMENTED signal, it causes the
segfault.

Not sure if there are many extra bugs introduced by compiling for iwmmxt
vs armv5t, but I suspect this is the only "major" one.  It would be good
if someone has already done these tests (or arm/armv5), so we can do a
simple diff against the files to see what regression there is for
iwmmxt...




More information about the Openembedded-devel mailing list