Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JIT Compiler Improvements in Android 3.0 and 4.0

Tags:

android

jit

When the Just in Time compiler was added to Android in version 2.2 a lot of detailed information about how it works was released as well. The official description of Android 3.0 also mentions "Various improvements to the JIT infrastructure" but I haven't been able to find any information about these improvements nor have I found any details about the JIT in Android 4.0. Has the JIT remained relatively unchanged in the newest versions or is there any information available about these improvements?

Edit: As described in my answer below, I found a few changelog entries describing the improvements. Any other info would still be appreciated.

like image 548
Hybrid System Avatar asked Sep 01 '12 09:09

Hybrid System


1 Answers

After checking out the Dalvik VM sourcecode from its public GIT repository and searching its changelog as described here, I see that aside from bugfixes, the only recent, major JIT-related changes seem to be:

Date: Tue Jul 3 13:13:07 2012 -0700
[X86] X86 trace JIT compiler support

This patch provides a fully functional x86 trace JIT compiler for Dalvik
VM. It is built on top of the existing x86 fast interpreter
with bug fixes and needed extension to support trace JIT interface. The
x86 trace JIT code generator was developed independent of the existing
template-based code generator and thus does not share exactly the same
infrastructure. Included in this patch are:

* Deprecated and removed the x86-atom fast interpreter that is no
  longer functional since ICS.
* Augmented x86 fast interpreter to provide interfaces for x86 trace JIT
  compiler.
* Added x86 trace JIT code generator with full JDWP debugging support.
* Method JIT and self-verification mode are not supported.

The x86 code generator uses the x86 instruction encoder/decoder library
from the Apache Harmony project. Additional wrapper extension and bug
fixes were added to support the x86 trace JIT code generator. The x86
instruction encoder/decoder is embedded inside the x86 code generator
under the libenc subdirectory.

and

Date: Wed May 2 14:27:16 2012 -0700
[MIPS] Dalvik fast interpreter support and JIT implementation
like image 183
Hybrid System Avatar answered Sep 24 '22 11:09

Hybrid System