OSDN Git Service

android-x86/art.git
7 years agoART: Add string reporting
Andreas Gampe [Tue, 21 Feb 2017 23:49:53 +0000 (15:49 -0800)]
ART: Add string reporting

Add support for string_primitive_value_callback.

Bug: 31385354
Test: m test-art-host-run-test-906-iterate-heap
Test: m test-art-host-run-test-913-heaps
Change-Id: I69f68fd07869ba3a156a84fcb806821fce1d7c03

7 years agoMerge "Always mark reference referents in transaction mode."
Hiroshi Yamauchi [Tue, 21 Feb 2017 23:51:03 +0000 (23:51 +0000)]
Merge "Always mark reference referents in transaction mode."

7 years agoMerge "ART: Refactor test 913"
Treehugger Robot [Tue, 21 Feb 2017 23:45:19 +0000 (23:45 +0000)]
Merge "ART: Refactor test 913"

7 years agoMerge "jni: Switch to @FastNative for all JNI functions. Deprecate !bang JNI."
Treehugger Robot [Tue, 21 Feb 2017 23:42:20 +0000 (23:42 +0000)]
Merge "jni: Switch to @FastNative for all JNI functions. Deprecate !bang JNI."

7 years agoMerge "Add regression test for b/35305951"
Treehugger Robot [Tue, 21 Feb 2017 23:34:47 +0000 (23:34 +0000)]
Merge "Add regression test for b/35305951"

7 years agoMerge "Make 946 print stacktrace to System.out"
Treehugger Robot [Tue, 21 Feb 2017 23:04:33 +0000 (23:04 +0000)]
Merge "Make 946 print stacktrace to System.out"

7 years agoMerge "Move testrunner.py to argparse"
Treehugger Robot [Tue, 21 Feb 2017 22:50:23 +0000 (22:50 +0000)]
Merge "Move testrunner.py to argparse"

7 years agoMerge "Add missing card mark verification to CC"
Treehugger Robot [Tue, 21 Feb 2017 22:38:36 +0000 (22:38 +0000)]
Merge "Add missing card mark verification to CC"

7 years agoMerge "ART: Rewrite JvmtiUniquePtr"
Treehugger Robot [Tue, 21 Feb 2017 22:25:57 +0000 (22:25 +0000)]
Merge "ART: Rewrite JvmtiUniquePtr"

7 years agoMerge "Reduce dex2oat memory usage from VariableHandleScope."
Treehugger Robot [Tue, 21 Feb 2017 21:52:52 +0000 (21:52 +0000)]
Merge "Reduce dex2oat memory usage from VariableHandleScope."

7 years agoAlways mark reference referents in transaction mode.
Hiroshi Yamauchi [Fri, 17 Feb 2017 23:33:23 +0000 (15:33 -0800)]
Always mark reference referents in transaction mode.

Fix a to-space invariant check failure in EnqueueFinalizerReferences.

Reference processing can be a problem and useless during transaction
because it's not easy to roll back what reference processing does and
there's no daemon threads running (in the unstarted runtime). To avoid
issues, always mark reference referents.

Add a do_atomic_update parameter to MarkHeapReference.

Bug: 35417063
Test: test-art-host with CC/CMS/SS.
Change-Id: If32eba8fca19ef86e5d13f7925d179c8aecb9e27

7 years agoAdd regression test for b/35305951
Mathieu Chartier [Tue, 21 Feb 2017 20:45:30 +0000 (12:45 -0800)]
Add regression test for b/35305951

Ensure that dexlayout can handle a dex file that has the same
debug_info_off_ for multiple methods.

Test: test-art-host-gtest-dexlayout_test

Bug: 35305951
Change-Id: I1283910009fec07095c99ea2288167da3766329f

7 years agoMerge "Make testrunner.py check ART_TEST_RUN_TEST_SKIP"
Treehugger Robot [Tue, 21 Feb 2017 20:43:05 +0000 (20:43 +0000)]
Merge "Make testrunner.py check ART_TEST_RUN_TEST_SKIP"

7 years agoAdd missing card mark verification to CC
Mathieu Chartier [Wed, 15 Feb 2017 03:24:22 +0000 (19:24 -0800)]
Add missing card mark verification to CC

Easier than adapting the code in heap.cc to do this. The verification
ensures that objects on clean cards never reference objects in newly
allocated regions.

Revert some changes from aog/341344 that caused the verification to
fail.

Bug: 12687968

Test: test-art-host with CC

Change-Id: Iad583644bb76633ccea0dba87cb383f30adaa80b

7 years agoART: Rewrite JvmtiUniquePtr
Andreas Gampe [Tue, 21 Feb 2017 20:41:43 +0000 (12:41 -0800)]
ART: Rewrite JvmtiUniquePtr

Templatize it over the stored type. Add convenience function for
allocation.

Bug: 31455788
Test: m test-art-host
Change-Id: Idaf0a9170e95141e7a9878923aa93a0dbc80819c

7 years agojni: Switch to @FastNative for all JNI functions. Deprecate !bang JNI.
Igor Murashkin [Fri, 17 Feb 2017 00:13:17 +0000 (16:13 -0800)]
jni: Switch to @FastNative for all JNI functions. Deprecate !bang JNI.

Switches all (248) methods that previously used !bang JNI in art/libcore
to all use @FastNative.

Also deprecate !bang JNI since nothing in Android seems to (or should
be) using it anymore.

This measures to be a 3% startup time improvement in system_server.

Test: make test-art-host
Bug: 34955272
Change-Id: I0881f401c7660c79f275235362777bfa58241deb

7 years agoMerge "Allow redefined intrinsics"
Treehugger Robot [Tue, 21 Feb 2017 19:27:01 +0000 (19:27 +0000)]
Merge "Allow redefined intrinsics"

7 years agoMerge "Remove String.setCharAt()."
Treehugger Robot [Tue, 21 Feb 2017 19:20:58 +0000 (19:20 +0000)]
Merge "Remove String.setCharAt()."

7 years agoMove testrunner.py to argparse
Alex Light [Tue, 21 Feb 2017 17:52:34 +0000 (09:52 -0800)]
Move testrunner.py to argparse

Optparse has been deprecated.

Test: ./test/testrunner/testrunner.py --help
Test: ./test/testrunner/testrunner.py --host -j40

Change-Id: I3b93b79e4ed2975ea5d5612435e42174ca3e9ade

7 years agoMake testrunner.py check ART_TEST_RUN_TEST_SKIP
Alex Light [Fri, 17 Feb 2017 22:21:33 +0000 (14:21 -0800)]
Make testrunner.py check ART_TEST_RUN_TEST_SKIP

Bug: 35407301
Test: ./test/testrunner/testrunner.py --host -t 071-dexfile
Test: ART_TEST_RUN_TEST_SKIP=071-dexfile-map-clean \
      ./test/testrunner/testrunner.py --host -t 071-dexfile-map-clean

Test: ./test/testrunner/testrunner.py --skip 071-dexfile-map-clean \
                                      --host -t 071-dexfile-map-clean
Change-Id: I4d13d081e37221b3861962b9e6fc1d7d5af451f6

7 years agoMake 946 print stacktrace to System.out
Alex Light [Tue, 21 Feb 2017 18:13:48 +0000 (10:13 -0800)]
Make 946 print stacktrace to System.out

We were sometimes failing due to when run-test read the pipes.

Test: ./test/run-test --host 946

Change-Id: I12b2565411cf4f9870be6ab6474b57d923942b7b

7 years agoAllow redefined intrinsics
Alex Light [Tue, 14 Feb 2017 00:36:06 +0000 (16:36 -0800)]
Allow redefined intrinsics

We make a change to allow intrinsics to be redefined. Note that
redefined intrinisics will no-longer be optimized as much and will not
be inlined or moved out of loops.

Test: ART_TEST_JIT=true mma -j40 test-art-host

Change-Id: Id6df89bb247d21f7859b48356ceba310eef9d105

7 years agoART: Refactor test 913
Andreas Gampe [Mon, 20 Feb 2017 22:22:06 +0000 (14:22 -0800)]
ART: Refactor test 913

Refactor test to avoid larger changes when adding test configurations.

Bug: 31385354
Test: m test-art-host-run-test-913-heaps
Change-Id: I491a0d6ddab765789d84dacc9df590e53e0e38e6

7 years agoReduce dex2oat memory usage from VariableHandleScope.
Vladimir Marko [Tue, 21 Feb 2017 17:00:28 +0000 (17:00 +0000)]
Reduce dex2oat memory usage from VariableHandleScope.

Pack more handles in FixedSizeHandleScope<>s to reduce the
per-Handle<> overhead.

Measured compilation of a big app using heaptrack:
  before:
    3571397 calls to allocation functions with 2.59MB peak
    consumption from art::MutableHandle<>
    art::ReferenceTypePropagation::HandleCache::NewHandle<>(art::ObjPtr<>)
  after:
    1139808 calls to allocation functions with 1.54MB peak
    consumption from art::MutableHandle<>
    art::ReferenceTypePropagation::HandleCache::NewHandle<>(art::ObjPtr<>)

Test: Rely on TreeHugger.
Bug: 34053922
Change-Id: I160990f3a89aadffc9e6753da30b448937f8eaf0

7 years agoMerge "ARM: VIXL32: Use VIXL backend by default."
Nicolas Geoffray [Tue, 21 Feb 2017 13:00:35 +0000 (13:00 +0000)]
Merge "ARM: VIXL32: Use VIXL backend by default."

7 years agoRemove String.setCharAt().
Vladimir Marko [Mon, 20 Feb 2017 14:08:30 +0000 (14:08 +0000)]
Remove String.setCharAt().

The internal API String.setCharAt() breaks the assumption
that strings are really immutable. That in turn breaks
string compression invariants - compressible strings must
be compressed. This CL removes the String.setCharAt() API.

The method was used only in String.replace(char, char)
when we found a match, copying the string on first match.
Instead, introduce a new native method that does the whole
replacement with a single call when we find the first match.

StringReplaceBenchmark results on Nexus 6P, lower is better:
  timeReplaceCharNonExistent/EMPTY   41.93 ->   38.25 (-9%)
  timeReplaceCharNonExistent/L_16   114.90 ->   95.09 (-17%)
  timeReplaceCharNonExistent/L_64   419.97 ->  320.65 (-24%)
  timeReplaceCharNonExistent/L_256 1667.01 -> 1091.25 (-35%)
  timeReplaceCharNonExistent/L_512 3253.50 -> 2075.62 (-36%)
  timeReplaceCharRepeated/EMPTY      41.93 ->   39.58 (-6%)
  timeReplaceCharRepeated/L_16      114.87 ->   95.40 (-17%)
  timeReplaceCharRepeated/L_64     1267.29 ->  704.32 (-44%)
  timeReplaceCharRepeated/L_256    5139.14 -> 1361.80 (-74%)
  timeReplaceCharRepeated/L_512   10787.81 -> 2338.41 (-78%)
  timeReplaceSingleChar/EMPTY        41.78 ->   37.16 (-11%)
  timeReplaceSingleChar/L_16        449.54 ->  497.51 (+11%)
  timeReplaceSingleChar/L_64        942.08 ->  891.35 (-5%)
  timeReplaceSingleChar/L_256      2756.18 -> 2174.64 (-21%)
  timeReplaceSingleChar/L_512      5489.91 -> 3983.32 (-27%)

Test: testrunner.py --host
Test: run-libcore-tests.sh --mode=host
Test: testrunner.py --host with string compression enabled.
Test: run-libcore-tests.sh --mode=host with string compression enabled.
Bug: 31040547
Change-Id: I9cf0d5457182f0a33ca8251c29931d3eb624ae07

7 years agoMerge "Add script to find warnings shared across buildbot history."
Adam Vartanian [Tue, 21 Feb 2017 12:26:36 +0000 (12:26 +0000)]
Merge "Add script to find warnings shared across buildbot history."

7 years agoMerge changes Ic39b6d55,Id9a392ac,I1a6b05ea
Richard Uhler [Tue, 21 Feb 2017 10:54:51 +0000 (10:54 +0000)]
Merge changes Ic39b6d55,Id9a392ac,I1a6b05ea

* changes:
  Show unreachable objects in ahat.
  ahat: add support for diffing two heap dumps.
  Refactor ahat's perflib api.

7 years agoMerge "ARM: Merge data-processing instructions and shifts/(un)signed extensions"
Vladimir Marko [Tue, 21 Feb 2017 10:47:06 +0000 (10:47 +0000)]
Merge "ARM: Merge data-processing instructions and shifts/(un)signed extensions"

7 years agoARM: VIXL32: Use VIXL backend by default.
Scott Wakeling [Tue, 20 Dec 2016 15:46:34 +0000 (15:46 +0000)]
ARM: VIXL32: Use VIXL backend by default.

export ART_USE_OLD_ARM_BACKEND=true to use the previous backend.

Test: mma test-art-host && mma test-art-target

Change-Id: I4024a4ea15fa8ce1269c0837f6ea001b6c809df5

7 years agoMerge "Emit the dex_pc if the line number is absent."
Nicolas Geoffray [Tue, 21 Feb 2017 09:38:45 +0000 (09:38 +0000)]
Merge "Emit the dex_pc if the line number is absent."

7 years agoMerge "Remove testing of prebuilt npic boot images."
Treehugger Robot [Tue, 21 Feb 2017 08:53:28 +0000 (08:53 +0000)]
Merge "Remove testing of prebuilt npic boot images."

7 years agoMerge "Add inline caches to offline profiles"
Calin Juravle [Mon, 20 Feb 2017 23:57:20 +0000 (23:57 +0000)]
Merge "Add inline caches to offline profiles"

7 years agoMerge "Added a few more integral SIMD extensions for x86/x86_64 (SSE)."
Aart Bik [Mon, 20 Feb 2017 19:11:07 +0000 (19:11 +0000)]
Merge "Added a few more integral SIMD extensions for x86/x86_64 (SSE)."

7 years agoMerge "Revert^4 "Hash-based dex cache type array.""
Treehugger Robot [Mon, 20 Feb 2017 16:40:49 +0000 (16:40 +0000)]
Merge "Revert^4 "Hash-based dex cache type array.""

7 years agoMerge "Revert "run-test: Ignore OUT_DIR flag""
Treehugger Robot [Mon, 20 Feb 2017 16:06:38 +0000 (16:06 +0000)]
Merge "Revert "run-test: Ignore OUT_DIR flag""

7 years agoMerge "Revert "Temporary fix for build bots: Set verbose always true""
Treehugger Robot [Mon, 20 Feb 2017 15:47:38 +0000 (15:47 +0000)]
Merge "Revert "Temporary fix for build bots: Set verbose always true""

7 years agoRevert^4 "Hash-based dex cache type array."
Vladimir Marko [Tue, 14 Feb 2017 14:08:12 +0000 (14:08 +0000)]
Revert^4 "Hash-based dex cache type array."

Added extra output to the abort message to collect more data
when we hit the crash. Added extra check when loading an app
image to verify that the class table isn't already broken.

Test: testrunner.py --host
Bug: 34839984
Bug: 30627598
Bug: 34659969

This reverts commit 5812e20ff7cbc8efa0b8d7486ada2f58840a6ad5.

Change-Id: I9bb442a184c236dcb75b3e42a095f39cd6bee59d

7 years agoMerge "Use stderr to avoid mangled print statements."
Nicolas Geoffray [Mon, 20 Feb 2017 14:08:19 +0000 (14:08 +0000)]
Merge "Use stderr to avoid mangled print statements."

7 years agoShow unreachable objects in ahat.
Richard Uhler [Wed, 28 Dec 2016 15:46:03 +0000 (15:46 +0000)]
Show unreachable objects in ahat.

But don't count them against heap size or instance counts.

Bug: 33828707
Test: ahat tests, including new InstanceTest.unreachableReferent.
Change-Id: Ic39b6d5569159497dcc76c342e22ed99d2a71307

7 years agoahat: add support for diffing two heap dumps.
Richard Uhler [Mon, 12 Dec 2016 13:11:26 +0000 (13:11 +0000)]
ahat: add support for diffing two heap dumps.

ahat now has the option to specify a --baseline hprof file to use as
the basis for comparing two heap dumps. When a baseline hprof file is
provided, ahat will highlight how the heap dump has changed relative
to the hprof file.

Differences that are highlighted include:
* overall heap sizes
* total bytes and number of allocations by type
* new and deleted instances of a given type
* retained sizes of objects
* instance fields, static fields, and array elements of modified objects

Also:
* Remove support for showing NativeAllocations, because I haven't ever
  found it to be useful, it is not obvious what a "native" allocation
  is, and I don't feel like adding diff support for them.
* Remove help page. Because it is outdated, not well maintained, and
  not very helpful in the first place.

Test: m ahat-test
Test: Run in diff mode for tests and added new tests for diff.
Test: Manually run with and without diff mode on heap dumps from system server.
Bug: 33770653
Change-Id: Id9a392ac75588200e716bbc3edbae6e9cd97c26b

7 years agoRefactor ahat's perflib api.
Richard Uhler [Fri, 9 Sep 2016 08:56:20 +0000 (09:56 +0100)]
Refactor ahat's perflib api.

This change substantially refactors how ahat accesses heap dump data.
Rather than use the perflib API directly with some additional
information accessed on the side via AhatSnapshot, we introduce an
entirely new API for accessing all the information we need from a heap
dump. Perflib is used when processing the heap dump to populate the
information initially, but afterwards all views and handlers go
through the new com.android.ahat.heapdump API.

The primary motivation for this change is to facilitate adding support
for diffing two heap dumps to ahat. The new API provides flexibility
that will make it easier to form links between objects in different
snapshots and introduce place holder objects to show when there is an
object in another snapshot that has no corresponding object in this
snapshot.

A large number of test cases were added to cover missing cases
discovered in the process of refactoring ahat's perflib API.

The external user-facing UI may have minor cosmetic changes, but
otherwise is unchanged.

Test: m ahat-test, with many new tests added.
Bug: 33770653

Change-Id: I1a6b05ea469ebbbac67d99129dd9faa457b4d17e

7 years agoUse stderr to avoid mangled print statements.
Nicolas Geoffray [Mon, 20 Feb 2017 09:12:50 +0000 (09:12 +0000)]
Use stderr to avoid mangled print statements.

test: 909-attach-agent
Change-Id: I1037edca0cc07b0635057ac50ae5c6557e054d78

7 years agoMerge "Use "false" instead of "/system/bin/false"."
Nicolas Geoffray [Mon, 20 Feb 2017 10:01:07 +0000 (10:01 +0000)]
Merge "Use "false" instead of "/system/bin/false"."

7 years agoMerge "Clean up tracking new roots, do not track them for CC."
Vladimir Marko [Mon, 20 Feb 2017 09:52:16 +0000 (09:52 +0000)]
Merge "Clean up tracking new roots, do not track them for CC."

7 years agoUse "false" instead of "/system/bin/false".
Nicolas Geoffray [Mon, 20 Feb 2017 09:25:40 +0000 (09:25 +0000)]
Use "false" instead of "/system/bin/false".

The android root might be different than /system

test: test-art-target with ANDROID_ROOT=/data/local/tmp/system
Change-Id: I7b0a6b5444442661daaf5c53032d93263d388f99

7 years agoMerge "Make dex2oat support profiles passed to non profile filters"
Treehugger Robot [Sat, 18 Feb 2017 02:01:08 +0000 (02:01 +0000)]
Merge "Make dex2oat support profiles passed to non profile filters"

7 years agoRevert "Temporary fix for build bots: Set verbose always true"
Shubham Ajmera [Sat, 18 Feb 2017 00:55:06 +0000 (00:55 +0000)]
Revert "Temporary fix for build bots: Set verbose always true"

This reverts commit 8858eac1d5869d95b1234c9bb5e32f25c25418a4.

Reason for revert: It was a temporary fix to get the build bots(go/ab).

Change-Id: I27321b69cfcf6f39c01276639c2bb5711469ed5a

7 years agoRevert "run-test: Ignore OUT_DIR flag"
Shubham Ajmera [Sat, 18 Feb 2017 00:52:37 +0000 (00:52 +0000)]
Revert "run-test: Ignore OUT_DIR flag"

This reverts commit ad9f7238268c0db4934b5f1bba9814bc002368a0.

Reason for revert: It was a temporary fix to get the build bots green.

Change-Id: I9a99fb50145e7b68e52c558520c703853ff57d7f

7 years agoMake dex2oat support profiles passed to non profile filters
Mathieu Chartier [Fri, 17 Feb 2017 20:56:25 +0000 (12:56 -0800)]
Make dex2oat support profiles passed to non profile filters

Using a non profile filter with an input profile should compile
everything but generate an app image and optimize layout based on
the profile.

Change UseProfileGuidedCompilation to use the profile arguments.
Using profile arguments instead of being based on the compiler
filter lets us do full speed compile and layout based on profile.

Fix ShouldCompileBasedOnProfile to use the compiler filter instead
of the existence of a profile.

Fixed gtests.

Test: test-art-host

Bug: 34927277

Change-Id: I325a10d2072ed427bb32f96e4efa54cf81e94ad3

7 years agoMerge "Move thread_running_gc_ logic to VisitObjectsInternalRegionSpace"
Mathieu Chartier [Fri, 17 Feb 2017 23:27:48 +0000 (23:27 +0000)]
Merge "Move thread_running_gc_ logic to VisitObjectsInternalRegionSpace"

7 years agoMerge "Skip loop optimization if there is no loop in the graph."
Mingyao Yang [Fri, 17 Feb 2017 21:53:42 +0000 (21:53 +0000)]
Merge "Skip loop optimization if there is no loop in the graph."

7 years agoMerge "Add nullptr check to CreateAnnotationSetItem."
Treehugger Robot [Fri, 17 Feb 2017 21:18:03 +0000 (21:18 +0000)]
Merge "Add nullptr check to CreateAnnotationSetItem."

7 years agoMerge "ART: Add constructor support to unstarted runtime"
Treehugger Robot [Fri, 17 Feb 2017 21:03:14 +0000 (21:03 +0000)]
Merge "ART: Add constructor support to unstarted runtime"

7 years agoMove thread_running_gc_ logic to VisitObjectsInternalRegionSpace
Mathieu Chartier [Fri, 17 Feb 2017 20:50:39 +0000 (12:50 -0800)]
Move thread_running_gc_ logic to VisitObjectsInternalRegionSpace

Cleaner to have the logic in the caller.

Test: test-art-host CC
Change-Id: I93a16f8baf327b6692cce5c6141d1c361ce53f16

7 years agoMerge "ART: Fix oatdump dex export"
Treehugger Robot [Fri, 17 Feb 2017 20:45:42 +0000 (20:45 +0000)]
Merge "ART: Fix oatdump dex export"

7 years agoMerge "Move InMemoryDexClassLoader to be a subtype of BaseDexClassLoader"
Treehugger Robot [Fri, 17 Feb 2017 20:39:31 +0000 (20:39 +0000)]
Merge "Move InMemoryDexClassLoader to be a subtype of BaseDexClassLoader"

7 years agoSkip loop optimization if there is no loop in the graph.
Mingyao Yang [Tue, 7 Feb 2017 21:06:06 +0000 (13:06 -0800)]
Skip loop optimization if there is no loop in the graph.

LinearizeGraph() does quite some allocations.
Also add some comments on the possible false positives of
some flags.

Test: m test-art-host
Change-Id: I80ef89a2dc031d601e7621d0b22060cd8c17fae3

7 years agoAdded a few more integral SIMD extensions for x86/x86_64 (SSE).
Aart Bik [Fri, 17 Feb 2017 19:48:23 +0000 (11:48 -0800)]
Added a few more integral SIMD extensions for x86/x86_64 (SSE).

Rationale:
ART vectorizer needs a couple of extra SIMD operations before
sending out the larger general CL.

Test: assembler_x86[_64]_test
Bug: 34083438
Change-Id: Id156283424ad311e6109b360efcd409c671cd5b7

7 years agoART: Add constructor support to unstarted runtime
Andreas Gampe [Fri, 17 Feb 2017 02:13:26 +0000 (18:13 -0800)]
ART: Add constructor support to unstarted runtime

Add support for Constructor.newInstance0.

Bug: 34956610
Test: m
Test: m test-art-host-gtest-unstarted_runtime_test
Test: Device boots
Change-Id: Ifcea33359c30b70262cd2f4f56f59515b06532ce

7 years agoART: Fix oatdump dex export
Andreas Gampe [Fri, 17 Feb 2017 18:19:44 +0000 (10:19 -0800)]
ART: Fix oatdump dex export

Check for start index.

Bug: 35459241
Test: m
Test: m test-art-host-gtest-oatdump_test
Change-Id: I655d7be93427fd219ec445187c1d49076883bd3e

7 years agoMerge "Use the alternate 32-bit base address for asan build only."
Hiroshi Yamauchi [Fri, 17 Feb 2017 18:13:17 +0000 (18:13 +0000)]
Merge "Use the alternate 32-bit base address for asan build only."

7 years agoMerge "ART: fix method handle invocation of abstract & interface methods"
Treehugger Robot [Fri, 17 Feb 2017 16:48:23 +0000 (16:48 +0000)]
Merge "ART: fix method handle invocation of abstract & interface methods"

7 years agoMove InMemoryDexClassLoader to be a subtype of BaseDexClassLoader
Alex Light [Thu, 16 Feb 2017 23:38:35 +0000 (15:38 -0800)]
Move InMemoryDexClassLoader to be a subtype of BaseDexClassLoader

Also write a test that class transformation works with this type of
class loader.

Test: mma -j40 test-art-host

Change-Id: Ibc2214191e04876ff7bbea010be6ec03b6f41904

7 years agoMerge "ART: Add support for generic method signature."
Andreas Gampe [Fri, 17 Feb 2017 15:57:47 +0000 (15:57 +0000)]
Merge "ART: Add support for generic method signature."

7 years agoClean up tracking new roots, do not track them for CC.
Vladimir Marko [Thu, 16 Feb 2017 16:37:03 +0000 (16:37 +0000)]
Clean up tracking new roots, do not track them for CC.

This addresses comments from
    https://android-review.googlesource.com/321552

Test: ART_USE_READ_BARRIER=false testrunner.py -b --host
Test: ART_USE_READ_BARRIER=true testrunner.py -b --host
Bug: 30627598
Change-Id: I9740e599fe8170201a3b5f10113bbeb0dee500fe

7 years agoARM: Merge data-processing instructions and shifts/(un)signed extensions
Anton Kirilov [Fri, 13 Jan 2017 14:42:47 +0000 (14:42 +0000)]
ARM: Merge data-processing instructions and shifts/(un)signed extensions

This commit mirrors the work that has already been done for ARM64.

Test: m test-art-target-run-test-551-checker-shifter-operand
Change-Id: Iec8c1563b035f40f0e18dcffde28d91dc21922f8

7 years agoART: fix method handle invocation of abstract & interface methods
Orion Hodson [Fri, 17 Feb 2017 12:47:28 +0000 (12:47 +0000)]
ART: fix method handle invocation of abstract & interface methods

Bug: 35422408
Test: m test-art-host
Change-Id: I1f60501a7d2e9d8c8b935709ae2d624af9f882ef

7 years agoMerge "x86/string compression: Use TESTB instead of TESTL in String.charAt()."
Treehugger Robot [Fri, 17 Feb 2017 13:48:35 +0000 (13:48 +0000)]
Merge "x86/string compression: Use TESTB instead of TESTL in String.charAt()."

7 years agoMerge "Tests for String.setCharAt() breaking string compression."
Treehugger Robot [Fri, 17 Feb 2017 13:04:05 +0000 (13:04 +0000)]
Merge "Tests for String.setCharAt() breaking string compression."

7 years agox86/string compression: Use TESTB instead of TESTL in String.charAt().
Vladimir Marko [Fri, 17 Feb 2017 11:30:23 +0000 (11:30 +0000)]
x86/string compression: Use TESTB instead of TESTL in String.charAt().

And fix disassembly of the now unused TESTL.

Test: testrunner.py --host with string compression enabled.
Test: Manual inspection of dump-oat output.
Bug: 35433135
Bug: 31040547
Change-Id: I36c955bc1f2243954ecc315266a2f3fce5d87693

7 years agoTests for String.setCharAt() breaking string compression.
Vladimir Marko [Fri, 17 Feb 2017 10:18:57 +0000 (10:18 +0000)]
Tests for String.setCharAt() breaking string compression.

With string compression, all compressible strings must be
compressed. The internal API String.setCharAt() can break
that invariant when overwriting a non-ASCII character with
an ASCII character, turning an uncompressible string into
a compressible one. It can also truncate a non-ASCII
character written to a compressed string. These regression
tests check the public API that exposes the problem.
Submitting these tests (without a fix) shall prevent us
from enabling string compression before it's ready.

Test: testrunner.py --host -t 021-string2
Test: Manually check that new asserts fail with string compression.
Bug: 31040547
Change-Id: I66f27a73f273f7648acbdf1b601345711f37c85e

7 years agoRemove testing of prebuilt npic boot images.
Richard Uhler [Thu, 16 Feb 2017 14:21:10 +0000 (14:21 +0000)]
Remove testing of prebuilt npic boot images.

Because we always compile prebuilt images pic.

Test: test-art-host, test-art-target.
Bug: 33192586
Change-Id: I7cd3d3bb7b6cfbf79c2e442f3793a4967f37d84c

7 years agoMerge "Remove passing tests from libcore_failures.txt."
Adam Vartanian [Fri, 17 Feb 2017 09:08:55 +0000 (09:08 +0000)]
Merge "Remove passing tests from libcore_failures.txt."

7 years agoMerge "Change IsMovingGCDisabled to take into account GC critical sections"
Treehugger Robot [Fri, 17 Feb 2017 07:53:47 +0000 (07:53 +0000)]
Merge "Change IsMovingGCDisabled to take into account GC critical sections"

7 years agoChange IsMovingGCDisabled to take into account GC critical sections
Mathieu Chartier [Fri, 17 Feb 2017 05:19:28 +0000 (21:19 -0800)]
Change IsMovingGCDisabled to take into account GC critical sections

Fixes CC test 130.

Test: test-art-host

Change-Id: I39a0d6b88a7e651a5fb2320fd34c5a8bdc615345

7 years agoMerge "ART: Add GetSignatureAnnotation to unstarted runtime"
Andreas Gampe [Fri, 17 Feb 2017 02:13:17 +0000 (02:13 +0000)]
Merge "ART: Add GetSignatureAnnotation to unstarted runtime"

7 years agoMerge changes I4ae3eac3,Ibeddd7a5
Shubham Ajmera [Fri, 17 Feb 2017 01:39:53 +0000 (01:39 +0000)]
Merge changes I4ae3eac3,Ibeddd7a5

* changes:
  run-test: Ignore OUT_DIR flag
  Testrunner: Release semphores/mutex when exception is caught.

7 years agorun-test: Ignore OUT_DIR flag
Shubham Ajmera [Fri, 17 Feb 2017 01:25:48 +0000 (01:25 +0000)]
run-test: Ignore OUT_DIR flag

This is a temporary fix to keep the build bots green.

Test: Run the test locally.
Change-Id: I4ae3eac3b3e460a094981f4229aa16e15c0f1750

7 years agoTestrunner: Release semphores/mutex when exception is caught.
Shubham Ajmera [Fri, 17 Feb 2017 00:41:10 +0000 (00:41 +0000)]
Testrunner: Release semphores/mutex when exception is caught.

Threads should release semaphore and mutex even when the exceptions are
caught.

Test: Manually running the testrunner
Change-Id: Ibeddd7a5167752be5f056728edcf6e117d947ba1

7 years agoMerge "Temporary fix for build bots: Set verbose always true"
Shubham Ajmera [Thu, 16 Feb 2017 23:53:15 +0000 (23:53 +0000)]
Merge "Temporary fix for build bots: Set verbose always true"

7 years agoTemporary fix for build bots: Set verbose always true
Shubham Ajmera [Thu, 16 Feb 2017 23:49:46 +0000 (23:49 +0000)]
Temporary fix for build bots: Set verbose always true

Test: Manual run
Change-Id: I7228c8f64a9a13de4ef3aa73e0e6cd4950ac9646

7 years agoART: Add GetSignatureAnnotation to unstarted runtime
Andreas Gampe [Thu, 16 Feb 2017 23:17:47 +0000 (15:17 -0800)]
ART: Add GetSignatureAnnotation to unstarted runtime

Add support for Class.getSignatureAnnotation to the unstarted
runtime. Refactor dex file annotation code to support transactions.

Bug: 34956610
Test: m
Test: m test-art-host-gtest-unstarted_runtime_test
Test: Device boots
Change-Id: I9f4a93e05ad6999c46c3bb1dbabe48a1ad6225b2

7 years agoMerge "Revert "Revert "Avoid adding region space bitmap to heap bitmap"""
Mathieu Chartier [Thu, 16 Feb 2017 23:05:58 +0000 (23:05 +0000)]
Merge "Revert "Revert "Avoid adding region space bitmap to heap bitmap"""

7 years agoART: Add support for generic method signature.
Andreas Gampe [Thu, 16 Feb 2017 23:04:36 +0000 (15:04 -0800)]
ART: Add support for generic method signature.

Add support for generic_ptr to GetMethodName.

Bug: 34615460
Test: m test-art-host-run-test-910-methods
Change-Id: Ia48d3c09e49f33a6a8e51d17f3070ea4cd82744c

7 years agoMerge "ART: Add support for generic field signature"
Andreas Gampe [Thu, 16 Feb 2017 23:03:46 +0000 (23:03 +0000)]
Merge "ART: Add support for generic field signature"

7 years agoMerge "ART: Fix Unstarted Runtime Class.forName"
Andreas Gampe [Thu, 16 Feb 2017 23:01:48 +0000 (23:01 +0000)]
Merge "ART: Fix Unstarted Runtime Class.forName"

7 years agoAdd nullptr check to CreateAnnotationSetItem.
Jeff Hao [Thu, 16 Feb 2017 21:34:38 +0000 (13:34 -0800)]
Add nullptr check to CreateAnnotationSetItem.

Unit test to follow.

Test: mm test-art-host
Bug: 35408418
Change-Id: I7157fe44b36babdec9a269e3726b393b0ff40dec

7 years agoAdd inline caches to offline profiles
Calin Juravle [Tue, 31 Jan 2017 03:30:44 +0000 (19:30 -0800)]
Add inline caches to offline profiles

Add support for inline caches in profiles:
- extract inline caches from the jit cache when the profile saver
queries the hot methods
- bump profile version to support the new data
- add new tests
- inline caches are only supported for same-apk calls (including
multidex)

Test: m art-test-host-gtest-profile_compilation_info_test
Bug: 32434870
Change-Id: I38b4ca0a54568d2224765ff76023baef1b8fd1a2

7 years agoUse the alternate 32-bit base address for asan build only.
Hiroshi Yamauchi [Fri, 10 Feb 2017 23:12:46 +0000 (15:12 -0800)]
Use the alternate 32-bit base address for asan build only.

Following up
https://android-review.googlesource.com/#/c/331545/.

Bug: 34606909
Test: marlin-userdebug asan coverage build boots
Test: test-art-host

Change-Id: I3fbf64a822520992670e91cc857f7279bd288546

7 years agoMerge "Revert "Enable String compression.""
Vladimir Marko [Thu, 16 Feb 2017 21:47:44 +0000 (21:47 +0000)]
Merge "Revert "Enable String compression.""

7 years agoRevert "Enable String compression."
Vladimir Marko [Thu, 16 Feb 2017 21:46:27 +0000 (21:46 +0000)]
Revert "Enable String compression."

The internal API String.setCharAt() is broken
with string compression.

Bug: 31040547

This reverts commit 24bbf98cec9f39a2592892adb245ce15d58cab19.

Change-Id: If2c2fa0eb42a8613994dfa5299febf7a5de2bf31

7 years agoMerge "ART: Add support for generic class signature"
Andreas Gampe [Thu, 16 Feb 2017 21:00:06 +0000 (21:00 +0000)]
Merge "ART: Add support for generic class signature"

7 years agoMerge "Testrunner: Return exit code 1 when test fails."
Shubham Ajmera [Thu, 16 Feb 2017 20:00:24 +0000 (20:00 +0000)]
Merge "Testrunner: Return exit code 1 when test fails."

7 years agoTestrunner: Return exit code 1 when test fails.
Shubham Ajmera [Thu, 16 Feb 2017 19:58:59 +0000 (19:58 +0000)]
Testrunner: Return exit code 1 when test fails.

Test: manual
Change-Id: I08a3cd4464469303ce00b4830fefba33dcdd5389

7 years agoMerge "Fix image dependencies for test-art-host-run-test-dependencies"
Shubham Ajmera [Thu, 16 Feb 2017 19:53:00 +0000 (19:53 +0000)]
Merge "Fix image dependencies for test-art-host-run-test-dependencies"

7 years agoFix image dependencies for test-art-host-run-test-dependencies
Shubham Ajmera [Thu, 16 Feb 2017 19:50:12 +0000 (19:50 +0000)]
Fix image dependencies for test-art-host-run-test-dependencies

when ART_TEST_INTERPRETER and other flags are not set.

Test: manual
Change-Id: Ia49e41444aab068642d2ea63e98c970206be19e0

7 years agoRevert "Revert "Avoid adding region space bitmap to heap bitmap""
Mathieu Chartier [Thu, 16 Feb 2017 18:20:12 +0000 (10:20 -0800)]
Revert "Revert "Avoid adding region space bitmap to heap bitmap""

The issue was that hprof dumping could run in the middle of non CC
GC. This meant the allocation stack and live bitmap could both visit
the same object. The solution is to use a GC critical section.

Bug: 34967844

Test: test-art-host

This reverts commit 215835daf496f44b94b37eb89dd659f84e3ae44d.

Change-Id: I99e65ff31ece74aa94fc55cc7480e27c1e39661b

7 years agoART: Fix Unstarted Runtime Class.forName
Andreas Gampe [Thu, 16 Feb 2017 03:29:36 +0000 (19:29 -0800)]
ART: Fix Unstarted Runtime Class.forName

We really only support the boot classloader, and only in the null
denotation. Otherwise the class-linker would want to install a
class table into the fake BootClassLoader.

Add tests.

Bug: 34956610
Test: m test-art-host-gtest-unstarted_runtime_test
Change-Id: I47e284fbd17eb8d33665d2788afcbcc3d09d3d2e

7 years agoART: Add support for generic field signature
Andreas Gampe [Thu, 16 Feb 2017 18:34:05 +0000 (10:34 -0800)]
ART: Add support for generic field signature

Add support for generic_ptr to GetFieldName.

Bug: 34615460
Test: m test-art-host-run-test-918-fields
Change-Id: If754461e1dbbfd775746d0883d0cb7e613b494e4