OSDN Git Service

android-x86/art.git
7 years agoART: Add primitive array reporting
Andreas Gampe [Thu, 23 Feb 2017 03:20:37 +0000 (19:20 -0800)]
ART: Add primitive array reporting

Add support for array_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: I2d615295bc5ad3d2579170d152e5778f56bf12cb

7 years agoMerge "Avoid excessive allocation of std::set<> nodes in SwapSpace."
Treehugger Robot [Wed, 22 Feb 2017 19:52:51 +0000 (19:52 +0000)]
Merge "Avoid excessive allocation of std::set<> nodes in SwapSpace."

7 years agoMerge "ART: Add string reporting"
Treehugger Robot [Wed, 22 Feb 2017 19:52:37 +0000 (19:52 +0000)]
Merge "ART: Add string reporting"

7 years agoMerge "ART: Remove ObjPtr kPoison template parameter"
Treehugger Robot [Wed, 22 Feb 2017 19:48:44 +0000 (19:48 +0000)]
Merge "ART: Remove ObjPtr kPoison template parameter"

7 years agoMerge "Fix profile merges of megamorphic inline caches."
Calin Juravle [Wed, 22 Feb 2017 19:42:46 +0000 (19:42 +0000)]
Merge "Fix profile merges of megamorphic inline caches."

7 years agoART: Remove ObjPtr kPoison template parameter
Andreas Gampe [Wed, 22 Feb 2017 18:11:30 +0000 (10:11 -0800)]
ART: Remove ObjPtr kPoison template parameter

Move to a global constexpr, so that object pointer poisoning can
be explicitly turned off for lower debug build overhead.

Bug: 35644797
Test: m
Test: m test-art-host
Change-Id: I2412b67cbec144f2aee206fb48591abe581fd00a

7 years agoAvoid excessive allocation of std::set<> nodes in SwapSpace.
Vladimir Marko [Wed, 22 Feb 2017 10:57:03 +0000 (10:57 +0000)]
Avoid excessive allocation of std::set<> nodes in SwapSpace.

This does not affect the overall memory usage but avoids
a lot of deallocations followed by allocation.

Measured compilation of a big app using heap track:
  bytes allocated in total (ignoring deallocations): 4.14GB -> 4.04GB
  calls to allocation functions: 21662554 -> 19545823

Test: m test-art-host-gtest
Test: Manually check that oat file for the big app remains identical.
Bug: 34053922
Change-Id: I00568422ba5510550986e29f30bace9ae6245269

7 years agoMerge "Move StackMapStream deduplication maps to arena."
Treehugger Robot [Wed, 22 Feb 2017 14:41:46 +0000 (14:41 +0000)]
Merge "Move StackMapStream deduplication maps to arena."

7 years agoMove StackMapStream deduplication maps to arena.
Vladimir Marko [Wed, 22 Feb 2017 11:59:57 +0000 (11:59 +0000)]
Move StackMapStream deduplication maps to arena.

Measured compilation of a big app using heap track:
  bytes allocated in total (ignoring deallocations): 4.14GB -> 3.98GB
  calls to allocation functions: 21662554 -> 1016606

Test: testrunner.py --host
Bug: 34053922
Change-Id: I0b1c4b5273daa2bc35e039df246bafad417b9b2b

7 years agoMerge "Remove suppression of fixed test."
Adam Vartanian [Wed, 22 Feb 2017 12:22:31 +0000 (12:22 +0000)]
Merge "Remove suppression of fixed test."

7 years agoMerge ""Revert^4 "Remove unused code for patching oat files.""
Treehugger Robot [Wed, 22 Feb 2017 11:42:16 +0000 (11:42 +0000)]
Merge ""Revert^4 "Remove unused code for patching oat files.""

7 years agoMerge "ahat: update README and manifest for release 1.1"
Treehugger Robot [Wed, 22 Feb 2017 10:47:57 +0000 (10:47 +0000)]
Merge "ahat: update README and manifest for release 1.1"

7 years agoMerge "Revert "Add missing card mark verification to CC""
Nicolas Geoffray [Wed, 22 Feb 2017 10:12:12 +0000 (10:12 +0000)]
Merge "Revert "Add missing card mark verification to CC""

7 years agoRevert "Add missing card mark verification to CC"
Nicolas Geoffray [Wed, 22 Feb 2017 10:11:12 +0000 (10:11 +0000)]
Revert "Add missing card mark verification to CC"

Fails in read-barrier-gcstress for 944-transform-classloaders

Bug: 12687968

This reverts commit 49ba69667ce70f8efbed7d68814ab184bee53486.

Change-Id: Ie91eaa034cea77918235766983661efa14fb1a14

7 years agoFix profile merges of megamorphic inline caches.
Calin Juravle [Wed, 22 Feb 2017 03:00:33 +0000 (19:00 -0800)]
Fix profile merges of megamorphic inline caches.

Test: m test-art-host-gtest-profile_compiltion_info_test
Bug: 35644850
Change-Id: Ib213715e263869c3aa6d4f81f0b7fe17f13b84c4

7 years agoMerge "Fix handling of array types when extracting the offline inline caches"
Calin Juravle [Wed, 22 Feb 2017 02:55:36 +0000 (02:55 +0000)]
Merge "Fix handling of array types when extracting the offline inline caches"

7 years agoMerge "Add test for null set ref list item in dex layout."
Treehugger Robot [Wed, 22 Feb 2017 02:54:35 +0000 (02:54 +0000)]
Merge "Add test for null set ref list item in dex layout."

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 agoAdd test for null set ref list item in dex layout.
Jeff Hao [Wed, 22 Feb 2017 00:14:23 +0000 (16:14 -0800)]
Add test for null set ref list item in dex layout.

Bug: 35408418
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: Ia9ac897a27dac27405f6838aaab625257c150e07

7 years agoFix handling of array types when extracting the offline inline caches
Calin Juravle [Wed, 22 Feb 2017 00:22:24 +0000 (16:22 -0800)]
Fix handling of array types when extracting the offline inline caches

Test: m test-art-host
      regression test is being worked out
Bug: 35621933

Change-Id: If762db76cc0493db8c8babab62035e915b660da5

7 years agoMerge "Fix dex2oat to handle dexlayout with non profile filters"
Mathieu Chartier [Wed, 22 Feb 2017 00:46:09 +0000 (00:46 +0000)]
Merge "Fix dex2oat to handle dexlayout with non profile filters"

7 years agoMerge "Remove obsolete TODOs"
Treehugger Robot [Wed, 22 Feb 2017 00:35:46 +0000 (00:35 +0000)]
Merge "Remove obsolete TODOs"

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 agoRemove obsolete TODOs
Alex Light [Tue, 21 Feb 2017 22:16:31 +0000 (14:16 -0800)]
Remove obsolete TODOs

There were a bunch of TODOs that are obsolete but were never removed.
Get rid of them.

Test: ./test/testrunner/testrunner.py --host -j40
Change-Id: Icfc6a27b7e8a6423ecb56fa2ad99b54f33a7cdb5

7 years agoFix dex2oat to handle dexlayout with non profile filters
Mathieu Chartier [Tue, 21 Feb 2017 21:41:54 +0000 (13:41 -0800)]
Fix dex2oat to handle dexlayout with non profile filters

Check for the existence of a profile and not being verify-profile
instead of kSpeed.

Test: test-art-host, speed compile with filter.

Bug: 34927277
Change-Id: Id3b21c31a7a4426196aa72d73efe2e83b71cc010

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 ago"Revert^4 "Remove unused code for patching oat files."
Richard Uhler [Wed, 1 Feb 2017 09:53:54 +0000 (09:53 +0000)]
"Revert^4 "Remove unused code for patching oat files."

This reverts commit cb6a5916cce4f18c7183fa8731446a084fb28fe5.

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

7 years agoRemove suppression of fixed test.
Adam Vartanian [Tue, 21 Feb 2017 15:37:50 +0000 (15:37 +0000)]
Remove suppression of fixed test.

Test: vogar org.apache.harmony.security.tests.java.security.Signature2Test
Test: cts -m CtsLibcoreTestCases -t org.apache...Signature2Test
Change-Id: I9cac0198a783fb3f2c630390102127a75c6f33a1

7 years agoahat: update README and manifest for release 1.1
Richard Uhler [Tue, 21 Feb 2017 15:00:04 +0000 (15:00 +0000)]
ahat: update README and manifest for release 1.1

Test: m ahat-test, verify version shown in overview page is 1.1
Change-Id: Ib15c43d9c42a34e24d74afae0cb6481452962bb8

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."