| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
This will simplify creating and populating VerifierDeps at runtime,
which is needed for doing and saving background verifcation of secondary
dex files.
Test: test.py
Bug: 158463186
Change-Id: Ic17913ebd173700e866ba9309bf6ae131fcbc423
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The compiler will try to throw exception when it cannot
resolved methods/classes or when there's an incompatible class
change. While doing so, it requires the thrown exception class
to be initialized.
However, when verifying with a public SDK Checker installed,
it's possible that the exception class may not initialized due
to private member access (e.g. serialVersionUid).
Since during verification the exceptions are simply mechanism
for the compiler to propagate the verification error it is OK
to disable the SDK Checker and allow the class to be initialized.
Bug: 177017481
Test: m test-art-host & manual
Change-Id: I3765897bf9885b7e26b3ab044002df88866cd3cd
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow dex2oat to further limit the resolved (boot classpath) symbols
during verification according to an additional list of public SDK files.
The additional SDKs can be specified as regular classpath (a list
of dex files) and has the effect of limiting what can be resolved from
the boot classpath. The extra checks are performed by comparing the
symbol descriptors and do not replace common verification access-checks
flow.
Bug: 111442216
Test: test-art-host
Change-Id: Idc13722f34b591d7f858ebeb94bd6f568102b458
|
| |
|
|
|
|
|
|
|
|
| |
At runtime, we won't run the verifier for those classes, but run with
access checks enabled in the interpreter.
Bug: 157265232
Test: test.py
Change-Id: Ia087c3b6f9fcbd295307333e524945d844ef54dc
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Add a command line argument specifying a file that contains
the list of updatable boot class path packages.
Test: Updated module_exclusion_test
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: aosp_taimen-userdebug boots.
Bug: 151314205
Change-Id: Ic6a66ad7e565a9b9b344cc467cb1ed550ab41b3f
|
| |
|
|
|
|
|
|
|
|
| |
The code in CompilerDriver was too permissive for arrays and
the code in Transaction was not even checking interfaces.
Move the check to AotClassLinker and fix it.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Change-Id: I3400b6c0e212e25acf17e3740ba19a8b407e03d3
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Previously we actually failed to load and initialize classes
for boot image extensions. Though some classes may have been
resolved by other code paths, extension art files did not
contain the intended classes. This CL fixes that and some
other bugs that were exposed by this class initialization.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Change-Id: I63a1970f7ff45dc37b14ebd24c5a68f3edacd6ef
|
| |
|
|
|
|
|
|
|
|
|
| |
And clean up transaction-related code to keep test code
out of the production binaries.
Test: Add TransactionTest#Constraints to transaction_test.
Test: m test-art-host-gtest
Test: testrunner.py --host
Test: aosp_taimen-userdebug boots.
Change-Id: Iefe5f1cfde95f564069249148f9e7d71564d7a10
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Add some spot fixes for app image class initialization and re-enable
test 660 features.
Bug: 70735003
Test: test-art-host
This reverts commit abadf024efdc632f663d7fb503cd277b3f65fca2.
Change-Id: Id16fd3ada3eb1bd57ea60c3cdc4a0cf9835950d7
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the current class loaders, there are many exceptions thrown for
each ClassNotFoundexception from FindClass calling
ClassLoader.loadClass. This CL reduces that by throwing directly from
FindClass to avoid these extra exceptions.
Numbers are from logging time taken by QuickDeliverException.
Time spent in exception throwing during startup goes down (Pixel 2 XL):
Camera: 20ms -> 5ms
Calculator: 5ms -> 2ms
Maps: 20ms -> 10ms
Added option -XX:FastClassNotFoundException=<bool> to enable or
disable the feature.
This reverts commit d399f579cf2a8462ef6f1fbea360fe62be174377.
Bug: 130310316
Bug: 130293184
Bug: 130209120
Test: test-art-host
Test: art/test/testrunner/testrunner.py --host --no-prebuild -t 134
Change-Id: I059abce98fe876d89de35d099647ee673c27343b
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Bug: 130310316
Bug: 130293184
Bug: 130209120
Bug: 130680590
Test: TH
This reverts commit 9634705832d5eb1f64af7766917e3043648a538f.
Change-Id: I07f32256fe718c607e9c304073c4f8d614de1c48
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the current class loaders, there are many exceptions thrown for
each ClassNotFoundexception from FindClass calling
ClassLoader.loadClass. This CL reduces that by throwing directly from
FindClass to avoid these extra exceptions.
Numbers are from logging time taken by QuickDeliverException.
Time spent in exception throwing during startup goes down (Pixel 2 XL):
Camera: 20ms -> 5ms
Calculator: 5ms -> 2ms
Maps: 20ms -> 10ms
Added option -XX:FastClassNotFoundException=<bool> to enable or
disable the feature.
Bug: 130310316
Bug: 130293184
Bug: 130209120
Test: test-art-host
(cherry picked from commit 40b1ba4543cf33e54f32e31cd2f276700c1be63c)
Merged-In: If013a2f2f330684e4f6ab000c19ef3822990e613
Change-Id: Ifca8d8b78e82463488bbb3f5796e9be7d94465b1
|
| |
|
|
|
|
|
| |
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 31113334
Change-Id: Ia04c4996f5cbfa1f26acbadcd747342c57b1aac3
|
| |
|
|
|
|
|
|
|
| |
There were several utilities related to building/walking/testing dex
files that were not in libdexfile. This change consolidates these.
Bug: 22322814
Test: make -j 50 test-art-host
Change-Id: Id76e9179d03b8ec7d67f7e0f267121f54f0ec2e0
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In preparation for extending the type check bit string from
24 to 28 bits, rewrite ClassStatus to fit into 4 bits. Also
perform a proper cleanup of the ClassStatus, i.e. change it
to an enum class, remove the "Status" word from enumerator
names, replace "Max" with "Last" in line with other
enumerations and remove aliases from mirror::Class.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: Pixel 2 XL boots.
Test: testrunner.py --target --optimizing
Bug: 64692057
Bug: 65318848
Change-Id: Iec1610ba5dac2c527b36c12819f132e1a77f2d45
|
| |
|
|
|
|
|
|
|
|
| |
Add recognition of RetryVerificationAtRuntime to the AoT
classlinker. In that case, report a soft failure.
Bug: 63467744
Bug: 65318848
Test: m test-art-host
Change-Id: I66c623179363db77ce3019233903da96a659ce04
|
| |
|
|
|
|
|
|
|
|
| |
Return any stored class state instead of a bool to allow more
recognized states in the future.
Bug: 63467744
Bug: 65318848
Test: m test-art-host
Change-Id: Id097273a41e09ee77c8d53377ad9beb09104a944
|
| |
|
|
|
|
|
|
|
| |
Bug: 63467744
Test: test-art-host
This reverts commit 6921d90a241f0307ac25120f8f976744d4a57706.
Change-Id: If70e31d3a15579dc75fd40bfef186e0124568c87
|
| |
|
|
|
|
|
|
| |
This reverts commit 0b1c341d2d89a483142cd14bdeb4650ab00184f1.
New test Dex2oatDeterminism.UnloadCompile fails on bots gtest-debug-gc and friends.
Change-Id: Ib101fc4390d90f88fe017d8482775d5e975f2ccb
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Support class unloading for the quicken compilation filter. This will
be enabled in a follow up CL.
Added a test that compares with and without unloading. The way that
it tests this is by adding an output app image. Having an app image
disables the unloading. This test also covers that app images don't
change the odex (currently).
Added a test for the assumed verified logic.
Bug: 63467744
Test: test-art-host
Test: test/testrunner/testrunner.py --interpreter --host -j40
Change-Id: I1e8a862c6f089c06c58aa0c846797e4c24bd072c
|
| |
|
|
|
|
|
|
| |
Breaks on bots.
This reverts commit 50ce4414a6154ee2d9eeaa27237d80b685e5acf1.
Change-Id: I39d856dc76b55788b6775ff2269eb8570742c6ff
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enabled compiler driver to start initialization process for classes with
static class initializers if debuggable flag is not setted because this
might change the behaviour of interpreter (although invisible to user),
e.g. the memory heap at startup will contains initialization results.
Updated two testcases to reflect the change of heap memory before
classes are initialized.
Enabled testcase 660-clinit to test whether class initializers are
executed.
This CL have to be submitted after /c/432328, /c/432154, /c/433242 and
/c/433342 because without that four this will break the build. Besides,
the other four CL will be tested in this CL.
Test: make test-art-host -j64
Change-Id: Ia25b9e18bdcd0fa3619be0058d459651f3b9a492
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Assume class B extends class A and class A's clinit tries to instantiate
class B as a field. In this case, class A is under initializing but
ClassLinker allows initialize B as class A is initialized. If class B is
initialized successfully and transaction is commited then class A abort
the transaction, status of class B will not be reverted.
Fixed by a simple approach, when compiling images, AotClassLinker does
not allow initialize a subclass when it's superclass is not fully
initialized.
A testcase produce this error is added in /c/433381
Test: make test-art-host -j64
Change-Id: Ic6bcbf1a5162d0e6ec26979b336c0f644a1c39bc
|
|
|
Transaction can be created recursively and every transaction knows which
class it is created for.
The goal of implementing nested transaction is to let every class
initialization (especially execution of class initializer) associates
with one transaction which provides the ability to track whether field
accesses are valid. To achieve this goal, we implemented a subclass for
ClassLinker called AotClassLinker, which will be instantiated instead of
ClassLinker under AOT compiler.
All invocations of InitializeClass happens at AOT compiler will be
wrapped with creating and destorying transactions.
Transactions will be paused when rollbacking, otherwise the memory will
not be rollbacked properly.
The use the transaction is changed and all usage are updated,
corresponding with native tests mentioning transaction, including
transaction_test and unstarted_runtime_test.
The validation rules will be implemented and explained in another CL.
Test: make test-art-host -j64
Change-Id: If53d3ee3231c337a9ea917f5b885c173917765de
|