Optimising invoke and return - importing phoneME ARM JIT to Icedtea?
xerxes at zafena.se
Fri Feb 20 04:59:27 PST 2009
Hello i have been following the recent days optimization discussion with
great interest and wanted to fill in some thoughts.
Gary Benson skrev:
> Edward Nevill wrote:
>> My poiny haired boss is in town today and I think my proposal to
>> him will be that we do the template interpreter. Based on some
>> benchmarking I did on the PC comparing zero with -Xint this should
>> give us 6 X performance increase over bare bones zero (4 X over my
>> current optimised implementation).
>> Doing the template interpreter would also serve as a useful 1st step
>> to doing hotspot (should we decide to go that way).
>> Gary: Does the Hotspt Compiler use the template interpreter to do
>> its codegen, or does it have its own codegen and only use the
>> template interpreter to interpret uncompiled code. (I could check
>> this myself in the source, but I am lazy).
> The two compilers (client and server) and the template interpreter
> are essentially independent. There's shared code, of course, but
> they're essentially different.
> Whether doing the template interpreter is a good idea depends on what
> you want, and when you want it. If your goal is a high-performance
> interpreter only solution then I'd say do the template interpreter.
> The work involved is probably something like 6-9 man months to get it
> mostly working, and maybe another 3 months to pass the TCK if that's
> what you want.
In order to complete the TCK on ARM i belive some focus are needed to
speedup the compile test cycle on ARM platforms since we dont want a
week compiletime betweeen the TCK runs.
I have posted links to Robert Schusters tutorials and patches to
crosscompile openjdk for arm:
I will gladly help debugging any failed tests for ARM.
My own plan before i start dive into the TCK is to first focus getting a
cross compilation environment up and then start looking into failing
jtreg tests on ARM/Zero.
> If your goal is a high-performance interpreter+JIT combo, then adding
> the client JIT to an existing template interpreter is probably 3-6 man
> months, with maybe another 3 months for the TCK. I'm guessing here,
> I haven't done a client JIT interpretation myself. I'm also assuming
> you'd want client rather than server (it's probably better suited for
A question that have tickeled my mind since fosdem are if the phoneME
and OpenJDK jvm codebase share any similarity, if so then perhaps a
allready implemented ARM JIT from the phoneME project can be patched up
to support 1.5 bytecodes and imported into a GPL only fork of OpenJDK by
dropping all classpath exceptions.
For me it is impossible to judge the effort needed to do such a
> If you want a JIT but don't have a 12-18 months to do it in and can
> accept good but not ultimate performance, then maybe Zero and Shark
> are worth looking into. Shark is not bad now, and it could be in
> something like a production ready state in 3-6 months.
> That's my two cents...
Cheers and have a great day!
More information about the zero-dev