OSDN Git Service

android-x86/art.git
7 years agoMerge "Check IsModifiableClass earlier in redefineClasses and retransformClasses"
Treehugger Robot [Tue, 7 Mar 2017 01:49:58 +0000 (01:49 +0000)]
Merge "Check IsModifiableClass earlier in redefineClasses and retransformClasses"

7 years agoMerge "Pass driver to loop opt. Add new side_effects phase."
Treehugger Robot [Tue, 7 Mar 2017 01:01:43 +0000 (01:01 +0000)]
Merge "Pass driver to loop opt. Add new side_effects phase."

7 years agoCheck IsModifiableClass earlier in redefineClasses and retransformClasses
Alex Light [Mon, 6 Mar 2017 23:46:43 +0000 (15:46 -0800)]
Check IsModifiableClass earlier in redefineClasses and retransformClasses

We were not checking this until we actually tried to install the
definition. This meant that we could send dex file data to agents even
if there is no chance of it being used. We would also try to get the
dex file name for non-existant dex files causing crashes.

Bug: 31455788
Test: ./test/testrunner/testrunner.py --host -t 921-hello-failure
Change-Id: I647a057fe916861d555ae142a2961f449f1bc3a5

7 years agoPass driver to loop opt. Add new side_effects phase.
Aart Bik [Mon, 6 Mar 2017 19:13:43 +0000 (11:13 -0800)]
Pass driver to loop opt. Add new side_effects phase.

Rationale:
Break-out CL of ART Vectorizer: number 3.
The purpose is making the original CL smaller
and easier to review.

Bug: 34083438
Test: test-art-host
Change-Id: I7cece807ee4f5fcaeae41f1deed33ac263447b77

7 years agoMerge "Disable test 154 for JIT"
Treehugger Robot [Mon, 6 Mar 2017 20:58:09 +0000 (20:58 +0000)]
Merge "Disable test 154 for JIT"

7 years agoMerge "Array store/allocation elimination"
Mingyao Yang [Mon, 6 Mar 2017 20:05:03 +0000 (20:05 +0000)]
Merge "Array store/allocation elimination"

7 years agoDisable test 154 for JIT
Mathieu Chartier [Mon, 6 Mar 2017 18:07:59 +0000 (10:07 -0800)]
Disable test 154 for JIT

The compiler may cause too many GCs to occur.

Bug: 35917229

Test: test-art-host ART_TEST_JIT
Test: test/testrunner/testrunner.py  --host --jit

Change-Id: I1c1fbd01e815b1f9117b45ab9a419c5824c17dad

7 years agoArray store/allocation elimination
Mingyao Yang [Wed, 1 Mar 2017 22:03:51 +0000 (14:03 -0800)]
Array store/allocation elimination

Allow array store/allocation elimination if it's only accessed
by constant index, so that there is no index-aliasing.

Bug: 35634932
Test: m -j20 test-art-host-run-test
Change-Id: Ief6e27f5bdbb30988ff4f318a34b4251c93865fa

7 years agoMerge "MIPS64: Refactor implicit null checks in array/field get/set"
Treehugger Robot [Mon, 6 Mar 2017 17:33:34 +0000 (17:33 +0000)]
Merge "MIPS64: Refactor implicit null checks in array/field get/set"

7 years agoMerge "Disable 115-native-bridge in Makefile."
Nicolas Geoffray [Mon, 6 Mar 2017 10:16:30 +0000 (10:16 +0000)]
Merge "Disable 115-native-bridge in Makefile."

7 years agoDisable 115-native-bridge in Makefile.
Nicolas Geoffray [Mon, 6 Mar 2017 10:13:39 +0000 (10:13 +0000)]
Disable 115-native-bridge in Makefile.

bug:35984597
Change-Id: I26fc9db839ae5229c7f2d82603e1172bddd07470

7 years agoMerge "Add GC critical section to GetObjectsAllocated"
Treehugger Robot [Sat, 4 Mar 2017 03:41:54 +0000 (03:41 +0000)]
Merge "Add GC critical section to GetObjectsAllocated"

7 years agoAdd GC critical section to GetObjectsAllocated
Mathieu Chartier [Sat, 4 Mar 2017 02:02:18 +0000 (18:02 -0800)]
Add GC critical section to GetObjectsAllocated

Prevent GC running during GetObjectsAllocated since we may get a
checkpoint request that tells us to suspend while we are doing
SuspendAll. This can cause a deadlock.

Bug: 35232978

Test: test-art-host

Change-Id: I9c02415df0a0b9fa787d7ce449ec06a40dfaf624

7 years agoMerge "Extend profman to generate profiles with inline caches"
Treehugger Robot [Fri, 3 Mar 2017 22:47:20 +0000 (22:47 +0000)]
Merge "Extend profman to generate profiles with inline caches"

7 years agoMerge "Fix OUT_DIR usage"
Treehugger Robot [Fri, 3 Mar 2017 22:33:18 +0000 (22:33 +0000)]
Merge "Fix OUT_DIR usage"

7 years agoExtend profman to generate profiles with inline caches
Calin Juravle [Tue, 14 Feb 2017 03:03:47 +0000 (19:03 -0800)]
Extend profman to generate profiles with inline caches

Extend profman logic to generate profiles based on a simple textual
respresentation. This will help writing tests for profile guided
compilation.

Before this CL, profman was able to generate profiles based on a list of
classes like:
java.lang.Comparable
java.lang.Math
java.lang.Object

This CL, enables profman to understand methods and classes alike. The
new format is:

# Classes
Ljava/lang/Comparable;
Ljava/lang/Math;
# Methods with inline caches
LTestInline;->inlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;
LTestInline;->noInlineCache(LSuper;)I

"LTestInline;->inlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;"
means that method `int inlineMonomorphicSubA(Super)` from class Main
will be added to the profile with the inline cache (SubA,SubB) for its
one and only invoke virtual.

@Main#noInlineCache:(LSuper;)I+;
meaning that method `int noInlineCache' from class Main will be added
to the profile with no inline cache.

Note that the methods are allowed to have a single invoke virtual in
their dex bytecode. That is to keep the parsing the file format
simple and easy to use.

Also, add a few more tests for profiles and fix an issue caused by
writing the dex files in a possibly wrong order.

Test: m run-test-host-gtest-profile_assistant_test
Bug: 32434870
Change-Id: I6b7340cf613007117d9818be206ccb3a27b815bf

7 years agoMerge "Fix dex location filtering in dex2oat"
Mathieu Chartier [Fri, 3 Mar 2017 20:52:33 +0000 (20:52 +0000)]
Merge "Fix dex location filtering in dex2oat"

7 years agoFix dex location filtering in dex2oat
Mathieu Chartier [Thu, 2 Mar 2017 01:16:22 +0000 (17:16 -0800)]
Fix dex location filtering in dex2oat

Previously we were filtering dex location against profile keys,
this meant qualified ones like /system/.../app.apk would not match
the profile key app.apk in the profile. This CL fixes changes the
behavior to filter based on the profile key of the dex file location.

Fixed OatWriter checksum for raw data case (also found by regression
test).

Added missing FlushCloseOutputFiles to CompileImage causing DCHECK
failures for File destructor.

All the fixes are regression tested by dex2oat_test.

Test: test-art-host-gtest-dex2oat_test

Bug: 34929159
Bug: 35761072

Change-Id: I1bdc949bd644bfab1c8fea0b737a132b487a653b

7 years agoFix OUT_DIR usage
Dan Willemsen [Fri, 3 Mar 2017 20:35:30 +0000 (12:35 -0800)]
Fix OUT_DIR usage

OUT_DIR is not guaranteed to end with a /

Test: m -j test-art-host-run-test ART_TEST_RUN_TEST_NO_RELOCATE=true
Change-Id: Ic11f4be106b3c67eb22f442f7afaea92bcf46817

7 years agoMerge "Clean up ZygoteHooks stack walking slightly."
Treehugger Robot [Fri, 3 Mar 2017 18:55:46 +0000 (18:55 +0000)]
Merge "Clean up ZygoteHooks stack walking slightly."

7 years agoMerge "Misc cleanup for class redefinition."
Treehugger Robot [Fri, 3 Mar 2017 18:36:10 +0000 (18:36 +0000)]
Merge "Misc cleanup for class redefinition."

7 years agoMerge changes I5be41da8,Ifa4aac02
Treehugger Robot [Fri, 3 Mar 2017 18:25:32 +0000 (18:25 +0000)]
Merge changes I5be41da8,Ifa4aac02

* changes:
  ART: Resolve <clinit> strings in compiler driver
  ART: Resolve static field strings in compiler driver

7 years agoMerge "Add nullptr and size check for opening a mem mapped dex file."
Treehugger Robot [Fri, 3 Mar 2017 18:01:46 +0000 (18:01 +0000)]
Merge "Add nullptr and size check for opening a mem mapped dex file."

7 years agoMerge "Increase ulimit on host to fix test 103-string-append with art-debug-gc."
Roland Levillain [Fri, 3 Mar 2017 17:38:59 +0000 (17:38 +0000)]
Merge "Increase ulimit on host to fix test 103-string-append with art-debug-gc."

7 years agoART: Resolve <clinit> strings in compiler driver
Andreas Gampe [Fri, 3 Mar 2017 00:41:35 +0000 (16:41 -0800)]
ART: Resolve <clinit> strings in compiler driver

Resolve strings for <clinit> in classes that fail initialization.
This will move the data from the zygote heap into the image heap,
creating clean memory.

Increases the image size by XXX. However, at the same time decreases
the zygote heap by the same amount.

Bug: 34956610
Test: m
Test: m test-art-host
Test: Device boots
Change-Id: I5be41da8424d5de65c02a2aed1ac4d6113741876

7 years agoMisc cleanup for class redefinition.
Alex Light [Thu, 2 Mar 2017 00:57:08 +0000 (16:57 -0800)]
Misc cleanup for class redefinition.

Added an iterator to access the RedefinitionData through and replaced
some code with scopes.

Bug: 31455788
Test: ./test/testrunner/testrunner.py --host -j40

Change-Id: Id7a381ac2b942b47d67619cd1da11858f8c9b41b

7 years agoART: Resolve static field strings in compiler driver
Andreas Gampe [Thu, 2 Mar 2017 21:50:36 +0000 (13:50 -0800)]
ART: Resolve static field strings in compiler driver

Resolved strings for static final fields in classes that fail
initialization. This will move the data from the zygote heap into
the image heap, creating clean memory.

Increases the image size by ~100K. However, at the same time decreases
the zygote heap by the same amount.

Bug: 34956610
Test: m
Test: m test-art-host
Test: Device boots
Change-Id: Ifa4aac0209f2364488b164b04daa9539821bc12b

7 years agoClean up ZygoteHooks stack walking slightly.
Alex Light [Wed, 1 Mar 2017 17:00:28 +0000 (09:00 -0800)]
Clean up ZygoteHooks stack walking slightly.

Test: Build and run marlin with libartd.so
Change-Id: I4a67935c5c7270636085c3ee12db0ebc1798a89e

7 years agoIncrease ulimit on host to fix test 103-string-append with art-debug-gc.
Roland Levillain [Fri, 3 Mar 2017 15:39:51 +0000 (15:39 +0000)]
Increase ulimit on host to fix test 103-string-append with art-debug-gc.

Strace is turned on by default on the art-debug-gc configuration, and
was going over the file size limit for this test on host (x86).

Test: Run ART run-test 103-string-append on art-debug-gc configuration.
Change-Id: I5cf28f054468babcf4d9b614b8e64b365a5691c5

7 years agoMerge "Fix date on devices in setup-buildbot-device.sh."
Roland Levillain [Fri, 3 Mar 2017 12:30:17 +0000 (12:30 +0000)]
Merge "Fix date on devices in setup-buildbot-device.sh."

7 years agoMerge "Clean up OatFileAssistant getting of image info."
Richard Uhler [Fri, 3 Mar 2017 08:52:23 +0000 (08:52 +0000)]
Merge "Clean up OatFileAssistant getting of image info."

7 years agoMIPS64: Refactor implicit null checks in array/field get/set
Tijana Jakovljevic [Tue, 17 Jan 2017 15:59:03 +0000 (16:59 +0100)]
MIPS64: Refactor implicit null checks in array/field get/set

Rationale: on MIPS64 64-bit loads and stores may be performed
as pairs of 32-bit loads/stores. Implicit null checks must be
associated with the first 32-bit load/store in a pair and not
the last. This change ensures proper association of said checks
(a few were done after the last 32-bit load/store in a pair)
and lays ground for further improvements in array/field get/set.

Additionally ported to MIPS32.

Test: mma test-art-target-run-test in QEMU
Test: mma test-art-host-gtest

Change-Id: If2612df62c21522959e69c637a36cc4ea962a32e

7 years agoAdd nullptr and size check for opening a mem mapped dex file.
Jeff Hao [Fri, 3 Mar 2017 00:36:31 +0000 (16:36 -0800)]
Add nullptr and size check for opening a mem mapped dex file.

The bug has an apk with 0 size classes.dex. When dex2oat tries to open
the file for layout, it crashes. This adds checks to ensure that the mem
map isn't null and has a sane size before opening it as a dex file.

Bug: 35892406
Test: mm test-art-host
Change-Id: I5f6b5a1e7bbccf4fe3483b68023d51436eb71805

7 years agoMerge "Clear empty unevac regions in ClearFromSpace"
Treehugger Robot [Fri, 3 Mar 2017 02:35:14 +0000 (02:35 +0000)]
Merge "Clear empty unevac regions in ClearFromSpace"

7 years agoMerge "Fix dexlayout manual walking of 0 length catch handler."
Treehugger Robot [Fri, 3 Mar 2017 01:56:38 +0000 (01:56 +0000)]
Merge "Fix dexlayout manual walking of 0 length catch handler."

7 years agoClear empty unevac regions in ClearFromSpace
Mathieu Chartier [Tue, 28 Feb 2017 00:37:21 +0000 (16:37 -0800)]
Clear empty unevac regions in ClearFromSpace

The motivation is to release RAM for empty unevac regions at the end
of the current GC instead of next GC.

Results on RitzPerf:
This optimization accounts for 2.33GB out of 53GB of freed bytes ~4%.
This also means that the average heap size is probably 4% smaller,
though it may not translate to RAM savings for actual apps.

Bug: 35800768
Bug: 12687968

Test: test-art-host
Change-Id: I38fa8dcda1aa6b439060ff170941b3a53022846f

7 years agoMerge "Don't fail for null dex elements in FlattenPathClassLoader"
Mathieu Chartier [Thu, 2 Mar 2017 23:08:08 +0000 (23:08 +0000)]
Merge "Don't fail for null dex elements in FlattenPathClassLoader"

7 years agoMerge "Add missing FlushCloseOutputFiles to CompileImage"
Mathieu Chartier [Thu, 2 Mar 2017 21:35:14 +0000 (21:35 +0000)]
Merge "Add missing FlushCloseOutputFiles to CompileImage"

7 years agoDon't fail for null dex elements in FlattenPathClassLoader
Mathieu Chartier [Thu, 2 Mar 2017 20:02:13 +0000 (12:02 -0800)]
Don't fail for null dex elements in FlattenPathClassLoader

Dex elements can be null for resource jars that do not contain any
dex files. This enables loading app images for the system server.

Bug: 34929159

Test: test-art-host

Change-Id: Iec663f8e19c9099e12902c9959b3a0ae32bb2ea7

7 years agoMerge "Increase gcloop threshold to 15"
Mathieu Chartier [Thu, 2 Mar 2017 20:57:01 +0000 (20:57 +0000)]
Merge "Increase gcloop threshold to 15"

7 years agoMerge "Fixed OatWriter checksum for raw data case"
Mathieu Chartier [Thu, 2 Mar 2017 20:00:31 +0000 (20:00 +0000)]
Merge "Fixed OatWriter checksum for raw data case"

7 years agoFix dexlayout manual walking of 0 length catch handler.
Jeff Hao [Thu, 2 Mar 2017 18:59:43 +0000 (10:59 -0800)]
Fix dexlayout manual walking of 0 length catch handler.

This fails for 0 length handlers that are unreferenced by any try
blocks. Unreferenced handlers are handled differently and walked
manually, and there was an error in the 0 size case, when there is only
a single catch all handler.

Bug: 35874292
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: Ie061b4fd0e7e8be7e3e382b11d2606f5ffc0817a

7 years agoMerge "Add dexlayout test where class data section precedes code items."
Treehugger Robot [Thu, 2 Mar 2017 18:47:55 +0000 (18:47 +0000)]
Merge "Add dexlayout test where class data section precedes code items."

7 years agoIncrease gcloop threshold to 15
Mathieu Chartier [Thu, 2 Mar 2017 18:43:07 +0000 (10:43 -0800)]
Increase gcloop threshold to 15

12 seems to be flaky for the JIT configuration.

Bug: 35917229

Test: test-art-host

Change-Id: Ia3bcd542d58f1dce16d2bc21cbee9f5d2650035f

7 years agoAdd missing FlushCloseOutputFiles to CompileImage
Mathieu Chartier [Thu, 2 Mar 2017 18:14:08 +0000 (10:14 -0800)]
Add missing FlushCloseOutputFiles to CompileImage

Was causing DCHECK failure for gtest that generate app image. Test
is in followup CL.

Test: clean-oat-host && test-art-host

Bug: 34929159
Change-Id: Ie5db008a71a6313ff7dc749f7cc1ac21255efdd7

7 years agoFixed OatWriter checksum for raw data case
Mathieu Chartier [Thu, 2 Mar 2017 17:49:03 +0000 (09:49 -0800)]
Fixed OatWriter checksum for raw data case

The checksum from the dex file seems to be incorrect, use the one
from the OatDexFile since it matches the original dex checksum.

Regression test in follow up CL.

Test: test-art-host-gtest -j32

Bug: 35761072
Change-Id: I79f0e720c9a2fc33286c4d4c1ef4ab9d194533a9

7 years agoMerge "New utilities for induction variables."
Aart Bik [Thu, 2 Mar 2017 17:07:01 +0000 (17:07 +0000)]
Merge "New utilities for induction variables."

7 years agoClean up OatFileAssistant getting of image info.
Richard Uhler [Wed, 22 Feb 2017 11:37:41 +0000 (11:37 +0000)]
Clean up OatFileAssistant getting of image info.

* ImageInfo.oat_checksum is no longer unused.
* Don't abort if we can't read secondary isa images.

Test: m art-test-host
Bug: 34385298
Bug: 34800919
Change-Id: I4d1ad4e2435cc62d38cd7143bc71313e319e952d

7 years agoMerge "Don't include patch information when generating images."
Richard Uhler [Thu, 2 Mar 2017 09:18:16 +0000 (09:18 +0000)]
Merge "Don't include patch information when generating images."

7 years agoMerge "Add regression test for vdex + layout combination"
Mathieu Chartier [Thu, 2 Mar 2017 01:16:16 +0000 (01:16 +0000)]
Merge "Add regression test for vdex + layout combination"

7 years agoAdd dexlayout test where class data section precedes code items.
Jeff Hao [Thu, 2 Mar 2017 00:44:50 +0000 (16:44 -0800)]
Add dexlayout test where class data section precedes code items.

Bug: 35855748
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: I8365cb5699014d04dd7561758255802d811d58c6

7 years agoAdd regression test for vdex + layout combination
Mathieu Chartier [Wed, 1 Mar 2017 23:20:30 +0000 (15:20 -0800)]
Add regression test for vdex + layout combination

Test compiling with vdex + layout.

Test failure example:
dex2oatd F 03-01 15:19:22 68522 68522 oat_writer.cc:2269] Check failed: oat_dex_file->source_.IsRawFile()

Bug: 35761072

Test: test-art-host-gtest-dex2oat_test

Change-Id: Ieefda4b2992cfc4eaf77c7c61062e825e3c5456f

7 years agoMerge "Prevent dexlayout from moving code items if preceded by class data."
Treehugger Robot [Wed, 1 Mar 2017 22:04:53 +0000 (22:04 +0000)]
Merge "Prevent dexlayout from moving code items if preceded by class data."

7 years agoMerge "Handle RawData case for DexLayout"
Treehugger Robot [Wed, 1 Mar 2017 21:04:00 +0000 (21:04 +0000)]
Merge "Handle RawData case for DexLayout"

7 years agoPrevent dexlayout from moving code items if preceded by class data.
Jeff Hao [Wed, 1 Mar 2017 20:18:19 +0000 (12:18 -0800)]
Prevent dexlayout from moving code items if preceded by class data.

Class data has uleb encoded offsets to the code item, and moving code
items will change the size of the class data, which would in turn affect
the code item offsets if they precede the code items.

For now, make it so that dexlayout does not move the code items at all
in this case. A better fix would be to swap the order of the sections in
dexlayout, but that can be done in a future CL.

Unit test to follow.

Bug: 35855748
Test: mm test-art-host
Change-Id: Ica6da1e5e951cf0003fc9793f13ad10b74004eb9

7 years agoHandle RawData case for DexLayout
Mathieu Chartier [Wed, 1 Mar 2017 04:17:30 +0000 (20:17 -0800)]
Handle RawData case for DexLayout

For vdex, the RawData dex file source is used. This was not
compatible with the existing LayoutAndWriteDexFile code. Added
handling to support RawData sources.

Without the handing, it was incorrectly using GetRawFile and casting
the dex file header to a File* causing a bogus fd number.

Test: adb shell cmd package compile -a --reset
Test: adb shell cmd package compile -a -m speed-profile
Test: test-art-host

Bug: 35761072
Change-Id: I74bdd17295479058e9245d1defb132df40fff474

7 years agoNew utilities for induction variables.
Aart Bik [Tue, 28 Feb 2017 22:41:55 +0000 (14:41 -0800)]
New utilities for induction variables.

Rationale:
Break-out CL of ART Vectorizer: 2 OF many.
The purpose is making the original CL smaller
and easier to review.

Bug: 34083438
Test: test-art-host
Change-Id: I46d297eba504af3850a5998ee279ea9f7b38bed8

7 years agoMerge "MIPS32: Do not use _MIPS_ARCH_MIPS64R6 in MIPS32 code"
Vladimir Marko [Wed, 1 Mar 2017 17:38:28 +0000 (17:38 +0000)]
Merge "MIPS32: Do not use _MIPS_ARCH_MIPS64R6 in MIPS32 code"

7 years agoMerge "ART: Add correct field index to reference visiting"
Treehugger Robot [Wed, 1 Mar 2017 16:52:09 +0000 (16:52 +0000)]
Merge "ART: Add correct field index to reference visiting"

7 years agoFix date on devices in setup-buildbot-device.sh.
Roland Levillain [Wed, 1 Mar 2017 14:14:10 +0000 (14:14 +0000)]
Fix date on devices in setup-buildbot-device.sh.

Update date on device if the difference with host is more than one hour.

Test: Set a bogus date on device, then run setup-buildbot-device.sh.
Change-Id: I9f5a3acdf699c1d04c838c8b156f59bf0f2c5550

7 years agoMerge "MIPS: Implement heap poisoning in ART's Optimizing compiler."
Roland Levillain [Wed, 1 Mar 2017 13:16:48 +0000 (13:16 +0000)]
Merge "MIPS: Implement heap poisoning in ART's Optimizing compiler."

7 years agoMerge "Revert "Revert "Intrinsify Integer.valueOf."""
Nicolas Geoffray [Wed, 1 Mar 2017 13:13:45 +0000 (13:13 +0000)]
Merge "Revert "Revert "Intrinsify Integer.valueOf."""

7 years agoMerge "Update run-tests script/dependencies to use -testdex jars."
Nicolas Geoffray [Wed, 1 Mar 2017 12:31:01 +0000 (12:31 +0000)]
Merge "Update run-tests script/dependencies to use -testdex jars."

7 years agoUpdate run-tests script/dependencies to use -testdex jars.
Nicolas Geoffray [Wed, 1 Mar 2017 10:03:08 +0000 (10:03 +0000)]
Update run-tests script/dependencies to use -testdex jars.

run-tests run with --no-image need the dex files in the
bootclasspath to be available. The -testdex jars are guaranteed
unstripped, so use them instead.

This was always broken, but vmarko@ just added a test that
forces --no-image.

bug:24535627
Test: test-art-target

Change-Id: I391573cffd0749d814fd81517e99dfc8f0fd59d5

7 years agoRevert "Revert "Intrinsify Integer.valueOf.""
Nicolas Geoffray [Wed, 1 Mar 2017 11:01:41 +0000 (11:01 +0000)]
Revert "Revert "Intrinsify Integer.valueOf.""

Fix heap poisoning.
LOG INFO instead of ERROR to avoid run-test failures with --no-image.

bug:30933338
Test: ART_HEAP_POISONING=true test-art-host test-art-target

This reverts commit db7b44ac3ea80a722aaed12e913ebc1661a57998.

Change-Id: I0b7d4f1eb11c62c9a3df8e0de0b1a5d8af760181

7 years agoMerge "Blacklist libcore tests relying on libjavacoretests."
Treehugger Robot [Wed, 1 Mar 2017 02:20:11 +0000 (02:20 +0000)]
Merge "Blacklist libcore tests relying on libjavacoretests."

7 years agoMerge "Fix mutex issue"
Treehugger Robot [Wed, 1 Mar 2017 00:17:46 +0000 (00:17 +0000)]
Merge "Fix mutex issue"

7 years agoART: Add correct field index to reference visiting
Andreas Gampe [Tue, 28 Feb 2017 23:47:44 +0000 (15:47 -0800)]
ART: Add correct field index to reference visiting

Use the created infrastructure to report references with the right
field indices.

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

7 years agoMerge "ART: Add primitive field reporting"
Treehugger Robot [Tue, 28 Feb 2017 23:49:32 +0000 (23:49 +0000)]
Merge "ART: Add primitive field reporting"

7 years agoMerge "Disable test 152 for gcstress"
Treehugger Robot [Tue, 28 Feb 2017 23:31:57 +0000 (23:31 +0000)]
Merge "Disable test 152 for gcstress"

7 years agoBlacklist libcore tests relying on libjavacoretests.
Nicolas Geoffray [Tue, 28 Feb 2017 23:12:49 +0000 (23:12 +0000)]
Blacklist libcore tests relying on libjavacoretests.

The new linker behavior breaks them.

bug:35417197
Change-Id: I914d385e386397fedf9b106797b3c06a898879f7

7 years agoFix mutex issue
Alex Light [Tue, 28 Feb 2017 20:45:36 +0000 (12:45 -0800)]
Fix mutex issue

We were having some issues with mutex locking order related to
upgrading local to global references when recording non-debuggable
classes. We refactored this code so there is no longer this issue.

Bug: 35838746
Test: Build and boot a marlin with libartd.so

Change-Id: I093b433d921478307130c49a07d0c7ec34dd070d

7 years agoMerge "Change the region space region size to 256k."
Hiroshi Yamauchi [Tue, 28 Feb 2017 21:47:19 +0000 (21:47 +0000)]
Merge "Change the region space region size to 256k."

7 years agoDisable test 152 for gcstress
Mathieu Chartier [Tue, 28 Feb 2017 21:20:27 +0000 (13:20 -0800)]
Disable test 152 for gcstress

Bug: 35800768

Test: test-art-host-run-test ART_TEST_GC_STRESS=true

Change-Id: I6f5cdbb445b9cad6f57ffa5738c8c9e8ec3b9c98

7 years agoART: Add primitive field reporting
Andreas Gampe [Sat, 25 Feb 2017 17:15:05 +0000 (09:15 -0800)]
ART: Add primitive field reporting

Add support for primitive_field_callback.

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

7 years agoMerge "ART/Mterp: eliminate unnecessary access checks"
Bill Buzbee [Tue, 28 Feb 2017 20:59:33 +0000 (20:59 +0000)]
Merge "ART/Mterp: eliminate unnecessary access checks"

7 years agoMerge "Avoid visiting dead large objects in RegionSpace::Walk"
Treehugger Robot [Tue, 28 Feb 2017 20:24:27 +0000 (20:24 +0000)]
Merge "Avoid visiting dead large objects in RegionSpace::Walk"

7 years agoMerge "ART: Fix string reporting"
Treehugger Robot [Tue, 28 Feb 2017 19:47:16 +0000 (19:47 +0000)]
Merge "ART: Fix string reporting"

7 years agoART/Mterp: eliminate unnecessary access checks
buzbee [Wed, 22 Feb 2017 21:40:59 +0000 (13:40 -0800)]
ART/Mterp: eliminate unnecessary access checks

This CL switches mterp from using the old quick entrypoints
for sget/sput to instead using an sget/sput access sequence
similar to that used by the reference interpreter.  This
results in a reduction of unnecessary access checks.

Benchmarks: 3% improvement on DeltaBlue

Bug: 30933338
Test: ART_TEST_INTERPRETER=true m test-art-host
Change-Id: Ib4e64d72b511c6a9ed537289bfeb393eff42c70f

7 years agoAvoid visiting dead large objects in RegionSpace::Walk
Mathieu Chartier [Tue, 28 Feb 2017 00:37:21 +0000 (16:37 -0800)]
Avoid visiting dead large objects in RegionSpace::Walk

The motivation is to prevent large objects from being visited by
RegionSpace::Walk if it is called before the next GC's SetFromSpace
marks the large object as from-space. This fixes possible dangling
pointer issues.

A follow up CL will clear the empty unevac regions.

Bug: 35800768
Bug: 12687968

Test: test-art-host

Change-Id: I6323959f0b7b2a357e6d6483cd1c33fb63c3d54a

7 years agoMerge "Apply String.equals() optimizations on MIPS32 and MIPS64"
Treehugger Robot [Tue, 28 Feb 2017 17:31:32 +0000 (17:31 +0000)]
Merge "Apply String.equals() optimizations on MIPS32 and MIPS64"

7 years agoDon't include patch information when generating images.
Richard Uhler [Tue, 28 Feb 2017 17:06:29 +0000 (17:06 +0000)]
Don't include patch information when generating images.

Because we always compile pic, patch information is not needed.

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

7 years agoMerge "Revert "Intrinsify Integer.valueOf.""
Nicolas Geoffray [Tue, 28 Feb 2017 17:05:11 +0000 (17:05 +0000)]
Merge "Revert "Intrinsify Integer.valueOf.""

7 years agoRevert "Intrinsify Integer.valueOf."
Nicolas Geoffray [Tue, 28 Feb 2017 17:04:50 +0000 (17:04 +0000)]
Revert "Intrinsify Integer.valueOf."

Heap poisoning missing
jit-gcstress not optimizing it.

bug:30933338

This reverts commit cd0b27287843cfd904dd163056322579ab4bbf27.

Change-Id: I5ece1818afbca5214babb6803f62614a649aedeb

7 years agoMIPS32: Do not use _MIPS_ARCH_MIPS64R6 in MIPS32 code
Goran Jakovljevic [Tue, 28 Feb 2017 13:58:01 +0000 (14:58 +0100)]
MIPS32: Do not use _MIPS_ARCH_MIPS64R6 in MIPS32 code

Test: booted MIPS32 and MIPS64 in QEMU

Change-Id: I413272c11ad00a0f77271302727b5860eaa7756b

7 years agoMerge "Fix java.lang.Void.TYPE (void.class) initialization."
Vladimir Marko [Tue, 28 Feb 2017 14:15:21 +0000 (14:15 +0000)]
Merge "Fix java.lang.Void.TYPE (void.class) initialization."

7 years agoMerge "Intrinsify Integer.valueOf."
Nicolas Geoffray [Tue, 28 Feb 2017 14:12:33 +0000 (14:12 +0000)]
Merge "Intrinsify Integer.valueOf."

7 years agoMerge "ARM: VIXL32: Use LoadLiteral for double constants."
Nicolas Geoffray [Tue, 28 Feb 2017 12:43:06 +0000 (12:43 +0000)]
Merge "ARM: VIXL32: Use LoadLiteral for double constants."

7 years agoApply String.equals() optimizations on MIPS32 and MIPS64
Goran Jakovljevic [Mon, 27 Feb 2017 12:14:57 +0000 (13:14 +0100)]
Apply String.equals() optimizations on MIPS32 and MIPS64

Also extended test 536-checker-intrinsic-optimization.

Test: mma test-art-target-run-test in QEMU (MIPS64R6 and MIPS32R6)
Test: mma test-art-target-run-test on CI20 (MIPS32R2)

Change-Id: I6bff42f81dcb05094ac698181df16c56193bb4a8

7 years agoMerge "Add hooks to avoid collecting code for run-tests."
Nicolas Geoffray [Tue, 28 Feb 2017 09:31:58 +0000 (09:31 +0000)]
Merge "Add hooks to avoid collecting code for run-tests."

7 years agoART: Fix string reporting
Andreas Gampe [Tue, 28 Feb 2017 03:59:40 +0000 (19:59 -0800)]
ART: Fix string reporting

Correctly report zero-length strings.

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

7 years agoMerge "Remove warning pragma from OpenJdkJvmTi.cc"
Treehugger Robot [Tue, 28 Feb 2017 02:01:36 +0000 (02:01 +0000)]
Merge "Remove warning pragma from OpenJdkJvmTi.cc"

7 years agoChange the region space region size to 256k.
Hiroshi Yamauchi [Thu, 23 Feb 2017 23:11:56 +0000 (15:11 -0800)]
Change the region space region size to 256k.

Also add RegionSpace::non_free_region_index_limit_ to avoid the need
to scan the free end of the region table in SetFromSpace(), which
compensates (and more) the pause time increase due to the increasing
number of regions.

Ritz EAAC avg pause time (angler little core / -Xmx512m):
Before 186us
After  436us (without non_free_region_index_limit_)
After  103us

Partially revert aog/327342 and remove the temporary adjustment of
max/min-free. Changing the region size to 256k was enough to avoid the
GCE boot issue (b/34576638), but 154-gc-loop barely fails. Make
154-gc-loop failures less strict.

Allocation performance (angler little core / -Xmx512m)
Ritz EAAC
Before 939.6
After 937.8

BinaryTree
Before 603350
After 620200 (-3%)

Bug: 12687968
Test: test-art-host
Test: GCE boot
Change-Id: I1495ab4ced806e1c4d779d49b56cea618817a0d6

7 years agoMerge "Revert "CHA for interface method.""
Mingyao Yang [Tue, 28 Feb 2017 00:06:40 +0000 (00:06 +0000)]
Merge "Revert "CHA for interface method.""

7 years agoMerge "Make testrunner use an environment variable to control building."
Treehugger Robot [Tue, 28 Feb 2017 00:05:41 +0000 (00:05 +0000)]
Merge "Make testrunner use an environment variable to control building."

7 years agoRevert "CHA for interface method."
Mingyao Yang [Tue, 28 Feb 2017 00:00:48 +0000 (16:00 -0800)]
Revert "CHA for interface method."

This reverts commit 7130fc769896a96573f55496444d87161e4b41e8.

There might be some race condition going on. 960-default-smali
fails sometimes.

7 years agoRemove warning pragma from OpenJdkJvmTi.cc
Alex Light [Mon, 27 Feb 2017 22:34:32 +0000 (14:34 -0800)]
Remove warning pragma from OpenJdkJvmTi.cc

Bug: 31455788
Test: ./test/testrunner/testrunner.py --host -j40 -b
Change-Id: Ia9343b5ff46f8921d6f1ed87bbf64016c581c450

7 years agoIntrinsify Integer.valueOf.
Nicolas Geoffray [Thu, 23 Feb 2017 16:18:41 +0000 (16:18 +0000)]
Intrinsify Integer.valueOf.

Improves performance of ArrayListStress and Ritz by ~10% and ~3%.

Test: test-art-host test-art-target
bug: 30933338

Change-Id: I639046e3a18dae50069d3a7ecb538a900bb590a1

7 years agoAdd hooks to avoid collecting code for run-tests.
Nicolas Geoffray [Mon, 27 Feb 2017 14:01:59 +0000 (14:01 +0000)]
Add hooks to avoid collecting code for run-tests.

ensureJitCompiled ensures a method gets compiled, but does
not prevent it from being GC'ed. Add a hammer hook to avoid
doing any JIT code cache GC.

test: test-art-host with gcstress and jit.
Change-Id: I3881f10f454ded9c7a3b385d326c2e08932d39bf

7 years agoMerge "proxy: Fix crash when creating proxies with dx-built libcore."
Igor Murashkin [Mon, 27 Feb 2017 22:02:14 +0000 (22:02 +0000)]
Merge "proxy: Fix crash when creating proxies with dx-built libcore."