LLC ARM Backend maintainer

My first ARM testing results or lack of them indicate
that 3.0 release requires some some beefy machines to build.
It is not so much raw cpu speed but memory and lots of it.
My builds got to linking llc and at that point linker started
eating megabytes of memory like chocolate.

So sadly chumbys, beagleboards, iThingis(?), Raspberry Pis, Gumstix
and even inexpensive Tegra2 boards seem to be out of contention
and relegated to target testing.

Based on my observations minimum memory required to build LLVM-3.0
seems to be 768MB to 1GB of RAM plus a 1.2+ GB of free disk space
for one kind of build.

NVIDIA has some tegra2 boards with 1GB but for their prices one can
get 3 tegra2 based trim-slice-pros.

Pawel

However, we don't have testing resources to test both our product and LLVM
on a host of target boards. We have some chumbys, beagleboards, iPhones,
iPod Touches, tables, Android Phones, etc. And most of those are already
booked solid with our own regression tests (most of which are based on
llvm-test-suite)
Could ARM enable us with testing hardware/resources?

The ARM-based Raspberry Pi is very close to shipping. The entry-level
unit will retail for just $25 with a higher-end model for $35. I
don't recall who makes it, but there is an ARM desktop computer that
retails for $149, with the same company making an ARM Netbook for
$199.

I have a Gumstix Overo Fire COM which I'm using mostly to experiment
with ARM assembly code and ARM-specific optimizations in C, C++ and
Objective-C. When I get it configured reliably I'd be happy to
dedicate it as a test machine most of the time.

Pawel

You might want to try an --enable-shared build. This should not need this expensive final linking.

Cheers
Tobi

Also, was this with binutils-gold?

Also, was this with binutils-gold?

No, not yet.

You might want to try an --enable-shared build. This should not need
this expensive final linking

I will have to try it on Debug build.

Cheers
Tobi

Anyway, the good news is that llvm-3.0 release Release build builds
(huh? - being too precise seems to lead to stuttering)
on a 512MB machine with a little bit of free disk space.

I cleaned up a few zombies, killed that tightvncserver
and switched to ssh. Also it is prudent to avoid the
make -j2 temptation
and let the second core slack off.

The result is:

clang version 3.0 (branches/release_30 142168)
Target: armv7l-unknown-linux-gnueabi
Thread model: posix

(oh common it is tegra2 not some unknown)

in:
352M llvm-3.0-armv7l-linux

linked with:
GNU ld (GNU Binutils for Ubuntu) 2.20

tested:
Unit tests run OK until JITterbug stops the fun.
...
[----------] 1 test from JIT
[ RUN ] JIT.GlobalInFunction
UNREACHABLE executed!
0 JITTests 0x00795fa8
Stack dump:
0. Running pass 'ARM Machine Code Emitter' on function '@F1'
make[3]: *** [unitcheck] Aborted

So now clang is building clang, and happily so far...

Pawel