Shark when it’s done will be great, a massive improvement over Zero, but LLVM only supports a couple of the platforms people use Zero on. I’ve wondered a few times how the task of porting LLVM to a new architecture compares with writing a full HotSpot port from scratch. This morning I realised I could get a rough idea by simply counting the lines of x86-specific code, the one port they share:
Lines of code | |
---|---|
LLVM 2.4 | 34,391 |
HotSpot 14.0b08 | 77,329 |
This is just raw lines of code, nothing clever. Both implement a combined IA-32 and X86-64 port, and the HotSpot figure is for the Linux port with the server JIT — one OS, one JIT — so I believe it’s a fair comparison. You could infer that porting LLVM and using Zero and Shark will get you up and running with OpenJDK in about half the time. That’s not bad.
Hello, and is it possible to add a porting layer to LLVM ? Just wondering of course, as I’m not a specialist in these matters…
LLVM is the porting layer :)
Sorry, I was under this (false) impression because you wrote that “LLVM only supports a couple of the platforms people use Zero on”, so I wondered if the same kind of work you did with zero could be acheived by the LLVM team. But clearly (as I said) I am far from a specialist in these matters. That said, what’s going on now in the JVM world is amazing !!!