slow on raspberry pi

Hi,

I have been reading about llvm and clang and vmkit, and must say: great work guys.

So when i got my raspberry pi, and having read that llvm is better at arm than gcc, i compiled llvm on the pi. The pi has a soc with armv6 (i don’t know what that means exactly though).
The pi is not fast and llvm with clang compilation took 22 h, but worked. hurrah.
Then i compiled llvm/clang with itself and was pleased it took “only” 12 hours. even better.

But then I compiled linpack and clang numbers were less than 1/4 off gcc compiled :frowning: (9000kFlops about)

Now according to this http://elinux.org/RPi_Performance there is something with compiler settings, hard/soft floats and possibly the exact target (armv6XXX) of the pi to make it better.

My question is: has anybody else tried this, or could tell me what i could try to remedy this.

Thanks

Torsten

So when i got my raspberry pi, and having read that llvm is better at arm
than gcc, i compiled llvm on the pi. The pi has a soc with armv6 (i don't
know what that means exactly though).

Hi Torsten,

That means an ARM1176, an old - but still kicking - ARM core.

http://www.arm.com/products/processors/classic/arm11/arm1176.php

The pi is not fast and llvm with clang compilation took 22 h, but worked.
hurrah.
Then i compiled llvm/clang with itself and was pleased it took "only" 12
hours. even better.

I got faster compilations with Clang on ARM on both PandaES and Chromebook,
so that's consistent, but half the time is really impressive.

Have you run "make check-all" ?

But then I compiled linpack and clang numbers were less than 1/4 off gcc

compiled :frowning: (9000kFlops about)

Now according to this http://elinux.org/RPi_Performance there is
something with compiler settings, hard/soft floats and possibly the exact
target (armv6XXX) of the pi to make it better.

Compile with -v and see what's the full command to see if it's choosing the
triple correctly. It should pick armv6k.

Since there's no NEON on ARM11 and VFP is optional, it's likely that LLVM
is assuming soft-floats, in which case your performance will be hurt. You
can also see in the full compilation command like (via clang -v) and turn
it on by choosing "-mfloat-abi hard".

My question is: has anybody else tried this, or could tell me what i could

try to remedy this.

LLVM compilation times won't be much faster than that, but turning on
hard-float can help linpack. Though, I'd be surprised if it went up 4x to
catch up with GCC.

I'd love to see the numbers and possibly a trace of it running on both
GCC-compiled and LLVM-compiled versions (if you'd be so kind ;).

cheers,
--renato