[oe] iwmmxt optimization and soft float in OE on PXA270

Hasjim Williams openembedded-devel at lists.futaris.org
Thu Mar 20 22:14:16 UTC 2008


On Thu, 20 Mar 2008 13:46:15 +0100, "Stanislav Brabec" <utx at penguin.cz>
said:
> Hasjim Williams wrote:
> 
> > You won't be able to use iwmmxt with everything.  The unwind / exception
> > support for iwxmmt isn't there in gcc.  Anything using C++ exceptions
> > won't work correctly.
> 
> So plain C binaries (e. g. kernel) are OK? And
> c++ -march=iwmmxt -fno-exceptions as well?

You can try this for C++ with -fno-exceptions, but I've never tried
it...

> > I could write/test these patches, I guess, but the only PXA270 machine
> > that I have access to is a HTC Magician (XDA Mini).
> 
> It would be very nice. I could test them on my Zaurus, if you send me
> some C++ testcase (or name of application to test it on).

It'd be good if you could run the tests, before we generate the
patches... 

gcc has a built in testcase system, dejagnu:
http://lists.gnu.org/archive/html/dejagnu/2006-04/msg00008.html explains
how to set it up and run it.
http://gcc.gnu.org/onlinedocs/libstdc++/test.html and 

e.g. FROM:
openembedded/build/tmp/work/armv4t-angstrom-linux-gnueabi/gcc-cross-4.1.2-r13/gcc-4.1.2/build.i686-linux.arm-angstrom-linux.arm-angstrom-linux-gnueabi
$ make check-gcc RUNTESTFLAGS="normal.exp --target_board=pxa270-linux"

I think the C++ support you're looking to test is in "normal.exp" .  You
should get a gcc.log and gcc.sum at the end, saying what tests
passed/failed.

$ make check
Will do a complete test of everything, and will probably take at least 8
hrs - day on a pxa270, I would think.

You'll only need dropbear or some other ssh server, so even a
minimal-image should be enough on your pxa27x machine.
 
> The last missing thing - iwmmxt support in qemu - was already written by
> Andrzej Zaborowski.

Is this "qemu-pxa270-and-more.patch" or is there something newer?  Has
this been put into OE's buildtree?

NB, Not sure what you're using to profile the speedups, but there is:

gcov:
http://gcc.gnu.org/onlinedocs/gcc/Gcov.html#Gcov

and gprof:
http://www.gnu.org/software/binutils/manual/gprof-2.9.1/gprof.html




More information about the Openembedded-devel mailing list