| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: I1c0dc16ff22b23dbd238cbeba3f4c078c3ffeaed
|
|
|
|
| |
Change-Id: I57b4c8caedcc6bfbeaa541d8171f8b5b3069c584
|
|
|
|
| |
Change-Id: I0242702886d53a39f2604e209a0763ff82278e1c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test files will be emitted into directories for both first and second
target architectures. Going with the naming scheme for binaries,
single-architecture and 32b cases have the standard name, and
64b goes into a directory with "64" suffix.
In multi-architecture setups, the default concrete test targets are
extended with a "32" and "64" suffix, e.g., test-art-target-oat-JniTest64.
The suffix-less form is linked to the primary architecture target (usually 64).
That means running combined targets, e.g., test-art-target-oat, will only
test the primary architecture right now.
Fixed target run tests calling the right dalvikvm. Fixed library search
path for tests derived from CommonRuntimeTest.
Missing in this work-in-progress is correct handling of dex2oat for the
secondary architecture. To make it work on 64b, comment out line 101
in build/Android.executable.mk
Change-Id: I3d260994e6efe8b73b56c71994053cc9392943a9
|
|
|
|
| |
Change-Id: I94ebeb5009fac7026bd157a12bdf39e392665a3a
|
|
|
|
|
|
|
| |
Also run tests with the optimizing compiler enabled when
the file art/USE_OPTIMIZING_COMPILER is present.
Change-Id: Ibc33eed62a43547bc3b9fe786d014c0d81b5add8
|
|
|
|
|
|
|
|
| |
Add a global variable ART_HOST_ARCH in build/Android.common.mk that
will be set to x86 or x86_64 depending on BUILD_HOST_64bit. This is
then used as the instruction set for dex2oat.
Change-Id: Icec8ef9139f780314a3ff325a729750e65d6d8da
|
|
|
|
|
|
|
|
|
| |
The oat file is now always in the same directory, and has the
same name as the image file. Only difference is the extension.
This also removes the need for host-prefix.
Change-Id: I16d1f7aeb1d58372d41921694664e9c321afc1ad
|
|
|
|
| |
Change-Id: Ifc4259ab03cb3867b625c2e1edf4352398c8a8e8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Removes the class initialization blacklist and use transaction to detect and
revert class initialization attempting to invoke native method. This only
concerns class initialization happening at compilation time when generating an
image (like boot.art for the system).
In transactional mode, we log every object's field assignment and array update.
Therefore we're able to abort a transaction to restore values of fields and
array as they were before the transaction starts. We also log changes to the
intern string table so we can restore its state prior to transaction start.
Since transactional mode only happens at compilation time, we don't need to log
all these changes at runtime. In order to reduce the overhead of testing if
transactional mode is on/off, we templatize interfaces of mirror::Object and
mirror::Array, respectively responsible for setting a field and setting an
array element.
For various reasons, we skip some specific fields from transaction:
- Object's class and array's length must remain unchanged so garbage collector
can compute object's size.
- Immutable fields only set during class loading: list of fields, method,
dex caches, vtables, ... as all classes have been loaded and verified before a
transaction occurs.
- Object's monitor for performance reason.
Before generating the image, we browse the heap to collect objects that need to
be written into it. Since the heap may still holds references to unreachable
objects due to aborted transactions, we trigger one collection at the end of
the class preinitialization phase.
Since the transaction is held by the runtime and all compilation threads share
the same runtime, we need to ensure only one compilation thread has exclusive
access to the runtime. To workaround this issue, we force class initialization
phase to run with only one thread. Note this is only done when generating image
so application compilation is not impacted. This issue will be addressed in a
separate CL.
Bug: 9676614
Change-Id: I221910a9183a5ba6c2b99a277f5a5a68bc69b5f9
|
|
|
|
|
|
| |
Add a test for Unsafe.arrayBaseOffset() and Unsafe.arrayIndexScale().
Change-Id: I9cbdb79a4a7ee055129f41811a117910c8b2febd
|
|
|
|
| |
Change-Id: Id5634250422138195218463e731b2d3772cba48f
|
|
|
|
|
|
| |
LOCAL_MODULE_PATH
Change-Id: I75034005d77c6e6a901ca327d7b5ea348cff23dc
|
|
|
|
| |
Change-Id: I1c87640baa681ed5f0bc10bca8dc130895bb6a95
|
|
|
|
| |
Change-Id: I69f74e7207b19caae376746dc2dce102cbfde186
|
|\ |
|
| |
| |
| |
| | |
Change-Id: Idf7fe85e1293453a8ad862ff2380dcd5db4e3a39
|
| |\
| | |
| | |
| | | |
Change-Id: Ic56131b49ddfa1ffbc9b50f15e79a0210bd07a41
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Method resolution currently creates strings to then compare with strings formed
from methods in other dex files. The temporary strings are purely created for
the sake of comparisons. This change creates a new Signature type that
represents a method signature but not as a string. This type supports
comparisons and so can be used when searching for methods in resolution.
With this change malloc is no longer the hottest method during dex2oat (now its
memset) and allocations during verification have been reduced. The verifier is
commonly what is populating the dex cache for methods and fields not declared
in the dex file itself.
Change-Id: I5ef0542823fbcae868aaa4a2457e8da7df0e9dae
|
| |/
|/|
| |
| | |
Change-Id: Id6745578e7ecc4899a52df5de2e81a915cdbb5e0
|
|/
|
|
|
|
| |
Bug: 10994325
Change-Id: Id0a46e78eecfe8a9eb91008765c4fff48697cc58
|
|
|
|
|
|
| |
Lets you run a test across all configurations (host, target, interpretter, ...)
Change-Id: Ie1c6b5f0e3ae1ef44a710ebec07daf2bd0309413
|
|
|
|
|
| |
Bug: 9071417
Change-Id: I1ee9ff281867f90fba7a8ed8bbf06b33ac29d511
|
|
|
|
|
|
| |
interpreter.
Change-Id: I54e7162c839910fcf8b8a394aebff2d3c807ccfb
|
|\
| |
| |
| | |
Change-Id: I6529b2fc27dfaedd2cb87b3697d049ccabed36ee
|
|/
|
|
|
|
|
|
|
|
| |
The runtime, compiler, dex2oat, and oatdump now are in seperate trees
to prevent dependency creep. They can now be individually built
without rebuilding the rest of the art projects. dalvikvm and jdwpspy
were already this way. Builds in the art directory should behave as
before, building everything including tests.
Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81
|
|
|
|
| |
Change-Id: I9c4756341b9f4cbc764ac034f0c9ad4dcd13a40b
|
|
|
|
| |
Change-Id: I055fb6810a881fb3cc5c24af971daf516ab34155
|
|
|
|
| |
Change-Id: I18c49c5cc1efc97199cb076dc258c4b9b7a46e8a
|
|
Change-Id: I5b300d88b347b4c566186551594a30df09959e2e
|