the ARM and the Shark

Robert Schuster theBohemian at
Thu Mar 26 13:30:00 PDT 2009



LLVM 2.5
OpenJDK Hotspot (Zero+Shark) from IcedTea 1.4.1

Special guest:

Beagleboard (armv7a -> Cortex A8 -> OMAP3530)

root at beagleboard:~# java -XX:+PrintCompilation HelloWorld
  1       java.lang.String::equals (88 bytes)
Hello World!

No crash here. :)

root at beagleboard:~# ./azureus
  1       java.lang.String::equals (88 bytes)
  2       java.lang.String::hashCode (60 bytes)
  3       java.lang.String::indexOf (151 bytes)
file:/usr/share/java/Azureus2.jar ; file:/usr/share/java/swt-gtk-3.4.jar
;   4file:/home/root/
  !    sun.nio.cs.US_ASCII$Encoder::encodeArrayLoop (279 bytes)
  5       java.lang.String::lastIndexOf (156 bytes)
  6       java.lang.String::charAt (33 bytes)
  7       java.util.Properties$LineReader::readLine (452 bytes)
  8       java.util.Properties::loadConvert (505 bytes)
Cannot yet select: 0x8ed18: i32,ch = AtomicCmpSwap 0x8e2f4, 0x8ea70,
0x8eeb0, 0xdf2a8 <0x11844c:0> <volatile> alignment=4

Now is that cool or is that cool? :)

LLVM is really compiling things and running them. For little 'enterprise
applications' like HelloWorld it is already enough to get through it
without problems.

The error message that causes the VM to crash when running Azureus is
caused by LLVM not providing ways to implement a certain atomic compare
and swap function (the so-called llvm.atomic.cmp.swap.i32 intrinsic).

Xerxes Ranby and me are currently fight^H^H^H^H^H trying to understand
how to implement this in LLVM.

From the looks of it the MIPS backend of LLVM also does not have atomic
function support.

So if anyone on this list is interested in Shark + ARM/MIPS/your
toaster, we are desperately in need of help. :D


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
Url : 

More information about the distro-pkg-dev mailing list