OSDN Git Service

android-x86/art.git
7 years agoMerge "Track libcore java.lang.reflect.Proxy update"
Przemyslaw Szczepaniak [Wed, 11 Jan 2017 10:15:43 +0000 (10:15 +0000)]
Merge "Track libcore java.lang.reflect.Proxy update"

7 years agoMerge "Recognize getClass() in RTP."
Nicolas Geoffray [Wed, 11 Jan 2017 09:08:09 +0000 (09:08 +0000)]
Merge "Recognize getClass() in RTP."

7 years agoMerge "Make all class redefinition operations after suspend_all infallible"
Treehugger Robot [Wed, 11 Jan 2017 00:42:14 +0000 (00:42 +0000)]
Merge "Make all class redefinition operations after suspend_all infallible"

7 years agoMerge "ART: Add system properties support"
Treehugger Robot [Wed, 11 Jan 2017 00:26:10 +0000 (00:26 +0000)]
Merge "ART: Add system properties support"

7 years agoMake all class redefinition operations after suspend_all infallible
Alex Light [Tue, 10 Jan 2017 21:33:56 +0000 (13:33 -0800)]
Make all class redefinition operations after suspend_all infallible

We can guarantee that the mutations to the class, classloader, method
& stack data-structures which occur after the suspend_all can never
fail. This will simplify implementing the required semantics of class
redefinition with respect to atomically updating multiple classes at
once.

Test: mma -j40 test-art-host
Change-Id: Iab95c66afbdcfe161a9486f5fb7193c53642c060

7 years agoART: Add system properties support
Andreas Gampe [Tue, 10 Jan 2017 03:21:06 +0000 (19:21 -0800)]
ART: Add system properties support

Add simple support for GetSystemProperties, GetSystemProperty and
SetSystemProperty. Add a test.

Bug: 31455788
Test: m test-art-host-run-test-922-properties
Change-Id: I02914f04643f0f8fab96f1b372925c2c5306fc9b

7 years agoMerge "Fix some issues reported by Valgrind"
Mathieu Chartier [Tue, 10 Jan 2017 18:40:25 +0000 (18:40 +0000)]
Merge "Fix some issues reported by Valgrind"

7 years agoMerge "Delete extra arm64/mips64 MterpReturn suspend check"
Mathieu Chartier [Tue, 10 Jan 2017 18:09:21 +0000 (18:09 +0000)]
Merge "Delete extra arm64/mips64 MterpReturn suspend check"

7 years agoMerge "Revert "Revert "Add basic implementation of IsModifiableClass"""
Treehugger Robot [Tue, 10 Jan 2017 17:04:13 +0000 (17:04 +0000)]
Merge "Revert "Revert "Add basic implementation of IsModifiableClass"""

7 years agoMerge "Revert "Revert "Add basic checks for redefinition."""
Treehugger Robot [Tue, 10 Jan 2017 17:01:12 +0000 (17:01 +0000)]
Merge "Revert "Revert "Add basic checks for redefinition."""

7 years agoTrack libcore java.lang.reflect.Proxy update
Przemyslaw Szczepaniak [Wed, 17 Aug 2016 16:46:38 +0000 (17:46 +0100)]
Track libcore java.lang.reflect.Proxy update

Test: make -j 32 & booted device & m test-art-host
Bug: 28666126
Change-Id: I6e7d75fd904e9b130925756ef1ff1122c25ab245

7 years agoDelete extra arm64/mips64 MterpReturn suspend check
Mathieu Chartier [Tue, 10 Jan 2017 02:48:11 +0000 (18:48 -0800)]
Delete extra arm64/mips64 MterpReturn suspend check

Doing a suspend check after moving the result into the shadow frame
result_register_ is not safe since result_register_ is not a GC
root. The suspend check is unnecessary since the opcodes that branch
to MterpReturn already do a suspend check.

This could maybe explain one crash for CC that was seen after calling
a getter that had no compiled code.

The extra suspend check appears to only be present on arm64 amd mips64.

Test: test-art-target ART_TEST_INTERPRETER=true

Bug: 33211261
Change-Id: I70b8863f40a25a26f278ac8ef0d57e083b663e0f

7 years agoRevert "Revert "Add basic implementation of IsModifiableClass""
Alex Light [Tue, 10 Jan 2017 15:41:24 +0000 (07:41 -0800)]
Revert "Revert "Add basic implementation of IsModifiableClass""

This reverts commit c66c077d40db58ec239f93a9c42b9939439c85c7.

Reason for revert: Problem with preceding CL fixed.

Test: mma -j40 test-art-host

7 years agoRevert "Revert "Add basic checks for redefinition.""
Alex Light [Tue, 10 Jan 2017 15:37:17 +0000 (15:37 +0000)]
Revert "Revert "Add basic checks for redefinition.""

This reverts commit f9d41c1d269f3031c0a89e34fc4a04303e186958.

Reason for revert: Fixed issue of missing target skip.

Test: mma -j40 test-art-host
Change-Id: Ibe632e1f3063373950fb873e1716d0439c561297

7 years agoRecognize getClass() in RTP.
Nicolas Geoffray [Mon, 19 Dec 2016 09:18:07 +0000 (09:18 +0000)]
Recognize getClass() in RTP.

Also always keep around the resolved field
in related HInstructions to avoid resolving it again
and again.

Test: test-art-host, 631-checker-get-class

Change-Id: I3bc6be11f3eb175c635e746006f39865947e0669

7 years agoMerge "The HBoundsCheck should be the index input of String.charAt."
Nicolas Geoffray [Tue, 10 Jan 2017 12:10:09 +0000 (12:10 +0000)]
Merge "The HBoundsCheck should be the index input of String.charAt."

7 years agoMerge "Revert "Add basic checks for redefinition.""
Nicolas Geoffray [Tue, 10 Jan 2017 09:00:28 +0000 (09:00 +0000)]
Merge "Revert "Add basic checks for redefinition.""

7 years agoRevert "Add basic checks for redefinition."
Nicolas Geoffray [Tue, 10 Jan 2017 08:58:44 +0000 (08:58 +0000)]
Revert "Add basic checks for redefinition."

Test fails.

This reverts commit 10f02fb4f026c493c69b21d4ec7c3096970357e1.

Change-Id: I21abfff0d7cd4ec840447f19819b7859b90f45b2

7 years agoMerge "Revert "Add basic implementation of IsModifiableClass""
Nicolas Geoffray [Tue, 10 Jan 2017 08:59:54 +0000 (08:59 +0000)]
Merge "Revert "Add basic implementation of IsModifiableClass""

7 years agoRevert "Add basic implementation of IsModifiableClass"
Nicolas Geoffray [Tue, 10 Jan 2017 08:59:31 +0000 (08:59 +0000)]
Revert "Add basic implementation of IsModifiableClass"

Built on top of a failing change.

This reverts commit b4e51ebfa23a1cb175a6c317ac4a69228709e78f.

Change-Id: I7f4dbe22271a9c04e518bceabba12c95cad3c6f7

7 years agoMerge "Add basic implementation of IsModifiableClass"
Treehugger Robot [Tue, 10 Jan 2017 01:52:42 +0000 (01:52 +0000)]
Merge "Add basic implementation of IsModifiableClass"

7 years agoMerge "Use relative futex timeout in SuspendAllInternal."
Mathieu Chartier [Tue, 10 Jan 2017 01:04:32 +0000 (01:04 +0000)]
Merge "Use relative futex timeout in SuspendAllInternal."

7 years agoAdd basic implementation of IsModifiableClass
Alex Light [Tue, 10 Jan 2017 00:28:58 +0000 (16:28 -0800)]
Add basic implementation of IsModifiableClass

Currently we just flatly disallow some types of modifications that
might be allowed in the future.

Bug: 31684578
Test: mma -j40 test-art-host
Change-Id: Ica76d12276eb11b318da2f642591ea78766f36ad

7 years agoMerge "ART: Add method modifiers functions"
Treehugger Robot [Tue, 10 Jan 2017 00:22:41 +0000 (00:22 +0000)]
Merge "ART: Add method modifiers functions"

7 years agoMerge "Add basic checks for redefinition."
Treehugger Robot [Tue, 10 Jan 2017 00:13:40 +0000 (00:13 +0000)]
Merge "Add basic checks for redefinition."

7 years agoMerge "Remove oat-target* rules"
Dan Willemsen [Mon, 9 Jan 2017 23:55:50 +0000 (23:55 +0000)]
Merge "Remove oat-target* rules"

7 years agoMerge "ART: Add method code item functions"
Treehugger Robot [Mon, 9 Jan 2017 22:57:24 +0000 (22:57 +0000)]
Merge "ART: Add method code item functions"

7 years agoART: Add method modifiers functions
Andreas Gampe [Mon, 9 Jan 2017 22:40:25 +0000 (14:40 -0800)]
ART: Add method modifiers functions

Add support for IsMethodNative, IsMethodObsolete and IsMethodSynthetic.
Add tests.

Bug: 34163329
Test: m test-art-host-run-test-910-methods
Change-Id: I89077cfde1f37861ccb718345b753dfae1d6abe3

7 years agoAdd basic checks for redefinition.
Alex Light [Sat, 7 Jan 2017 00:21:48 +0000 (16:21 -0800)]
Add basic checks for redefinition.

This adds some checks for redefined classes. Currently it checks that
the transformed class has the same name, interfaces, and access flags.

Other checks will be added in the future.

Test: mma -j40 test-art-host
Change-Id: Iaa94e9e8688db1985d15f27acf3ddb53908a1c8b

7 years agoThe HBoundsCheck should be the index input of String.charAt.
Nicolas Geoffray [Mon, 9 Jan 2017 14:02:45 +0000 (14:02 +0000)]
The HBoundsCheck should be the index input of String.charAt.

Otherwise, the charAt call may be licmed but the bounds check
stay in the loop.

bug: 33909430
bug: 28330359
Test: 632-checker-char-at-bounds
Change-Id: I3cb749785c26ff8a016a7103899e9b19a24d5022

7 years agoART: Add method code item functions
Andreas Gampe [Mon, 9 Jan 2017 19:38:04 +0000 (11:38 -0800)]
ART: Add method code item functions

Add support for GetArgumentsSize, GetMaxLocals and GetMethodLocation
support. Add tests.

Bug: 34163329
Test: m test-art-host-run-test-910-methods
Change-Id: I14b5d02bf0513dc5a8d3f4ea17c849ab08b8554a

7 years agoMerge "ART: Change no-image run-test dependency"
Treehugger Robot [Mon, 9 Jan 2017 21:04:09 +0000 (21:04 +0000)]
Merge "ART: Change no-image run-test dependency"

7 years agoMerge "Simplify the collector names."
Hiroshi Yamauchi [Mon, 9 Jan 2017 20:26:01 +0000 (20:26 +0000)]
Merge "Simplify the collector names."

7 years agoMerge "ART: Add trivial implementation of extensions"
Treehugger Robot [Mon, 9 Jan 2017 20:25:59 +0000 (20:25 +0000)]
Merge "ART: Add trivial implementation of extensions"

7 years agoART: Add trivial implementation of extensions
Andreas Gampe [Mon, 9 Jan 2017 18:50:17 +0000 (10:50 -0800)]
ART: Add trivial implementation of extensions

We do not need extension support.

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

7 years agoART: Change no-image run-test dependency
Andreas Gampe [Mon, 9 Jan 2017 18:42:25 +0000 (10:42 -0800)]
ART: Change no-image run-test dependency

Let the no-image run-test Make configuration depend on the pic
image for prebuilding. This is what the run-test/run-test-jar
configuration will use.

Test: m ART_TEST_RUN_TEST_NO_IMAGE=true test-art-host && rm $ANDROID_HOST_OUT/framework/x86*/* && m ART_TEST_RUN_TEST_NO_IMAGE=true test-art-host
Change-Id: I5c02e76d5e51a63416705a58f733135b688158c2

7 years agoMerge "ART: Add GetObjectSize and GetObjectHashCode"
Treehugger Robot [Mon, 9 Jan 2017 17:53:25 +0000 (17:53 +0000)]
Merge "ART: Add GetObjectSize and GetObjectHashCode"

7 years agoFix some issues reported by Valgrind
Anton Kirilov [Fri, 6 Jan 2017 13:33:42 +0000 (13:33 +0000)]
Fix some issues reported by Valgrind

* Update the target suppression file.
* Disable the detection of mismatched free() / delete / delete []
calls, since it results in a lot of false positives (a known
Valgrind limitation associated with asymmetric inlining of
operator new() and operator delete()).
* Avoid a memory leak in the code generator tests, caused by the
fact that the VIXL-based ARM code generator does not always use
the arena allocator.
* Fix an access to uninitialized memory.

Test: m valgrind-test-art-target
Test: valgrind --leak-check=full --show-mismatched-frees=no \
               --ignore-range-below-sp=1024-1 \
               --suppressions=valgrind-target-suppressions.txt \
               dalvikvm ...
Change-Id: I891a3247aa9828226b4e62c69d6e1c8398d757b8

7 years agoUse relative futex timeout in SuspendAllInternal.
rock.yeh [Fri, 23 Dec 2016 07:11:13 +0000 (15:11 +0800)]
Use relative futex timeout in SuspendAllInternal.

This erroneously used an absolute timeout for FUTEX_WAIT, potentially
causing it to block for MUCH longer than 10 seconds.
http://man7.org/linux/man-pages/man2/futex.2.html
Note: for FUTEX_WAIT, timeout is interpreted as a relative value.

Error case:
kernel time: 15842.476344
nsec: 31694950164731
12-22 20:25:48.020043     0     0 F [15842.476344][HeapTaskDaemon:3008]
futex_wait 00000070fcdf8980 1 1 31694950164731

Normal case:
kernel time: 15842.476344
nsec: 15842476344

Block backtrace:
"HeapTaskDaemon" sysTid=3008
  #00 pc 000000000001bcac  /system/lib64/libc.so (syscall+28)
  #01 pc 0000000000461db0  /system/lib64/libart.so
(_ZN3art10ThreadList18SuspendAllInternalEPNS_6ThreadES2_S2_b+720)
  #02 pc 000000000046249c  /system/lib64/libart.so
(_ZN3art10ThreadList10SuspendAllEPKcb+532)
  #03 pc 00000000001e8fc8  /system/lib64/libart.so
(_ZN3art2gc9collector9MarkSweep9RunPhasesEv+232)
  #04 pc 00000000001e1694  /system/lib64/libart.so
(_ZN3art2gc9collector16GarbageCollector3RunENS0_7GcCauseEb+332)
  #05 pc 0000000000211500  /system/lib64/libart.so
(_ZN3art2gc4Heap22CollectGarbageInternalENS0_9collector6GcTypeENS0_7Gc
CauseEb+3048)
  #06 pc 0000000000218acc  /system/lib64/libart.so
(_ZN3art2gc4Heap12ConcurrentGCEPNS_6ThreadEb+124)
  #07 pc 000000000021fbf4  /system/lib64/libart.so
(_ZN3art2gc4Heap16ConcurrentGCTask3RunEPNS_6ThreadE+36)

This is a fix patch log and each timeout log interval of 10 seconds:
12-27 03:27:46.153744 1631 1713 E art : Unexpected time out during
suspend all.
12-27 03:27:56.154401 1631 1713 E art : Unexpected time out during
suspend all.
12-27 03:28:06.154956 1631 1713 E art : Unexpected time out during
suspend all.

7 years agoMerge "Find the classpath boundary for being assignable to an interface."
Nicolas Geoffray [Sat, 7 Jan 2017 13:46:59 +0000 (13:46 +0000)]
Merge "Find the classpath boundary for being assignable to an interface."

7 years agoFind the classpath boundary for being assignable to an interface.
Nicolas Geoffray [Wed, 21 Dec 2016 16:54:52 +0000 (16:54 +0000)]
Find the classpath boundary for being assignable to an interface.

Test: verifier_deps_test, test-art-host

Change-Id: Icab3a5a9f94f6a38fa8ef320f93ac14691a732d3

7 years agoRemove oat-target* rules
Dan Willemsen [Sat, 7 Jan 2017 07:14:05 +0000 (23:14 -0800)]
Remove oat-target* rules

This really only did anything for the 'mm' case, and was broken:

* Didn't find any apps (needed to search app/*/*.apk)
* Attempted to build framework/pm.odex instead of
  framework/oat/arm/pm.odex.
* Caused Kati to re-read all the makefiles any time the contents of
  system/app or system/framework changed.

Test: m -j installclean; m -j a (repeat until kati doesn't regenerate)
      m -j pmlib; m -j a (doesn't regenerate)
Change-Id: Icca6556f0de952b8fbc740433272766a1ce5cdc9

7 years agoART: Add GetObjectSize and GetObjectHashCode
Andreas Gampe [Sat, 7 Jan 2017 02:00:20 +0000 (18:00 -0800)]
ART: Add GetObjectSize and GetObjectHashCode

Add support for these two functions. Add tests.

Bug: 31684578
Test: m test-art-host-run-test-920-objects
Change-Id: If5dfb5aedddee47e5d739b0c56c7d264ba6e2d51

7 years agoMerge "Revert "Revert "Create test for field access in obsolete methods."""
Treehugger Robot [Sat, 7 Jan 2017 02:20:28 +0000 (02:20 +0000)]
Merge "Revert "Revert "Create test for field access in obsolete methods."""

7 years agoMerge "Make GetErrorName allocate the output buffer."
Treehugger Robot [Sat, 7 Jan 2017 02:07:08 +0000 (02:07 +0000)]
Merge "Make GetErrorName allocate the output buffer."

7 years agoMerge "ART: Add GetClassLoader"
Treehugger Robot [Sat, 7 Jan 2017 01:55:10 +0000 (01:55 +0000)]
Merge "ART: Add GetClassLoader"

7 years agoART: Add GetClassLoader
Andreas Gampe [Fri, 6 Jan 2017 23:50:55 +0000 (15:50 -0800)]
ART: Add GetClassLoader

Add support for GetClassLoader. Add a test.

Bug: 31684578
Test: m test-art-host-run-test-912-classes
Change-Id: I629ec2a1f4843bc3b28e40111805e250be44d993

7 years agoMerge "ART: Add GetImplementedInterfaces"
Andreas Gampe [Fri, 6 Jan 2017 23:49:35 +0000 (23:49 +0000)]
Merge "ART: Add GetImplementedInterfaces"

7 years agoMerge changes Ia14276d3,I7f063806
Andreas Gampe [Fri, 6 Jan 2017 23:03:37 +0000 (23:03 +0000)]
Merge changes Ia14276d3,I7f063806

* changes:
  ART: Add GetClassModifiers
  ART: Add GetClassMethods

7 years agoSimplify the collector names.
Hiroshi Yamauchi [Fri, 6 Jan 2017 23:03:26 +0000 (15:03 -0800)]
Simplify the collector names.

To make it easier to distinguish the collector names in the GC logs.

Bug: 12687968
Test: test-art-host with CC.
Change-Id: I23d06a4f8f4b0447d0904c0cb813e080277a2e9e

7 years agoMake GetErrorName allocate the output buffer.
Alex Light [Fri, 6 Jan 2017 22:44:23 +0000 (14:44 -0800)]
Make GetErrorName allocate the output buffer.

Previously we were simply returning a static pointer which isn't
allowed by the spec.

Test: mma -j40 test-art-host
Change-Id: I84cfb81e58d479c7c0d5ee352f5b005183895c82

7 years agoRevert "Revert "Create test for field access in obsolete methods.""
Alex Light [Fri, 6 Jan 2017 16:58:19 +0000 (16:58 +0000)]
Revert "Revert "Create test for field access in obsolete methods.""

This reverts commit b710a0e0e32193d345a4bfeb93649de2503489be.

Reason for revert: Fixed test issue

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

Change-Id: I30b758a61afa0eb132af239e8071ea79eab58ac1

7 years agoART: Add GetImplementedInterfaces
Andreas Gampe [Fri, 6 Jan 2017 22:20:39 +0000 (14:20 -0800)]
ART: Add GetImplementedInterfaces

Add support for GetImplementedInterfaces. Add a test. Add cleanup
to some existing tests.

Bug: 31684578
Test: m test-art-host-run-test-912-classes
Change-Id: Ic75bf3bba3b568232178d8525501122826b5a430

7 years agoART: Add GetClassModifiers
Andreas Gampe [Fri, 6 Jan 2017 21:07:19 +0000 (13:07 -0800)]
ART: Add GetClassModifiers

Add support for GetClassModifiers. Add a test.

Bug: 31684578
Test: m test-art-host-run-test-912-classes
Change-Id: Ia14276d3139503ce35f7684bd846b371e9eafa25

7 years agoMerge "Also use ThreadList::Dump() in empty checkpoint timeout."
Treehugger Robot [Fri, 6 Jan 2017 21:07:06 +0000 (21:07 +0000)]
Merge "Also use ThreadList::Dump() in empty checkpoint timeout."

7 years agoART: Add GetClassMethods
Andreas Gampe [Fri, 6 Jan 2017 19:36:35 +0000 (11:36 -0800)]
ART: Add GetClassMethods

Add GetClassMethods support. Add a test.

Bug: 31684578
Test: m test-art-host-run-test-912-classes
Change-Id: I7f063806671db5a5a69f7064e61f950b246f0b86

7 years agoMerge "ART: Add GetClassStatus"
Treehugger Robot [Fri, 6 Jan 2017 19:58:30 +0000 (19:58 +0000)]
Merge "ART: Add GetClassStatus"

7 years agoMerge changes Id7509ef1,Id33b8c54,I2f9e5c62
Treehugger Robot [Fri, 6 Jan 2017 18:59:54 +0000 (18:59 +0000)]
Merge changes Id7509ef1,Id33b8c54,I2f9e5c62

* changes:
  ART: Add GetClassFields support
  ART: Add Field methods
  ART: Add IsInterface and IsArrayClass support

7 years agoAlso use ThreadList::Dump() in empty checkpoint timeout.
Hiroshi Yamauchi [Fri, 6 Jan 2017 18:45:17 +0000 (10:45 -0800)]
Also use ThreadList::Dump() in empty checkpoint timeout.

After dumping runnable threading that haven't responded to the empty
checkpoint request, use ThreadList::Dump() to try to dump the other
threads, noting that it may get stuck, but it's the end of logging
anyway. This should help diagnose the timeout better as we would be
able to see more threads.

Bug: 33006388
Bug: 12687968
Test: test-art-host with CC.
Change-Id: I6936098949d53dbc74af11fd5d796e1524581468

7 years agoMerge "Avoid using ThreadList::Dump() in empty checkpoint timeout."
Hiroshi Yamauchi [Fri, 6 Jan 2017 18:32:19 +0000 (18:32 +0000)]
Merge "Avoid using ThreadList::Dump() in empty checkpoint timeout."

7 years agoART: Add GetClassStatus
Andreas Gampe [Fri, 6 Jan 2017 17:12:49 +0000 (09:12 -0800)]
ART: Add GetClassStatus

Add support for GetClassStatus. Add a test.

Bug: 31684578
Test: m test-art-host-run-test-912-classes
Change-Id: Id8a3c3f4e4855a0c9bd87976a1cc0fad2db13f25

7 years agoART: Add GetClassFields support
Andreas Gampe [Thu, 5 Jan 2017 23:21:34 +0000 (15:21 -0800)]
ART: Add GetClassFields support

Add GetClassFields support. Add a test.

Bug: 31684578
Test: m test-art-host-run-test-912-classes
Change-Id: Id7509ef10ec9c19b54b7db8637729556b91273e5

7 years agoART: Add Field methods
Andreas Gampe [Fri, 6 Jan 2017 01:23:45 +0000 (17:23 -0800)]
ART: Add Field methods

Add GetFieldName, GetFieldDeclaringClass, GetFieldModifiers
and IsFieldSynthetic support. Add tests.

Bug: 34113943
Test: m test-art-host-run-test-918-fields
Change-Id: Id33b8c54c250f73f0658ec45ccb2b55eccb37623

7 years agoART: Add IsInterface and IsArrayClass support
Andreas Gampe [Thu, 5 Jan 2017 22:42:13 +0000 (14:42 -0800)]
ART: Add IsInterface and IsArrayClass support

Add support for these two required calls. Add a test.

Bug: 31684578
Test: m test-art-host-run-test-912-classes
Change-Id: I2f9e5c62dd4c3d7f29aaf3dd08f1297aa3b2fd8b

7 years agoMerge "Remove the IsInDexCache flag from HLoadString."
Treehugger Robot [Fri, 6 Jan 2017 16:19:51 +0000 (16:19 +0000)]
Merge "Remove the IsInDexCache flag from HLoadString."

7 years agoRemove the IsInDexCache flag from HLoadString.
Vladimir Marko [Fri, 6 Jan 2017 14:43:11 +0000 (14:43 +0000)]
Remove the IsInDexCache flag from HLoadString.

This flag was obsolete and always false.

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

7 years agoMerge "ART: Make method handle runtime code callable from compiler."
Orion Hodson [Fri, 6 Jan 2017 09:04:47 +0000 (09:04 +0000)]
Merge "ART: Make method handle runtime code callable from compiler."

7 years agoMerge "Remove bogus DCHECK."
Treehugger Robot [Fri, 6 Jan 2017 09:04:18 +0000 (09:04 +0000)]
Merge "Remove bogus DCHECK."

7 years agoMerge "ARM: VIXL32: Fix crash in Exchange for stack slots."
Nicolas Geoffray [Fri, 6 Jan 2017 09:03:36 +0000 (09:03 +0000)]
Merge "ARM: VIXL32: Fix crash in Exchange for stack slots."

7 years agoMerge "Actually record arrays in classpath."
Nicolas Geoffray [Fri, 6 Jan 2017 09:00:15 +0000 (09:00 +0000)]
Merge "Actually record arrays in classpath."

7 years agoART: Make method handle runtime code callable from compiler.
Orion Hodson [Wed, 7 Dec 2016 11:35:37 +0000 (11:35 +0000)]
ART: Make method handle runtime code callable from compiler.

Most of this change is moving the existing method handles code, but it
also introduces a new header file, common_dex_operations.h, that has
some operations taken from interpreter_common.{h,cc} that are also used
by method handles (perform call, set field, get field).

Bug: 30550796
Test: m test-art-host
Change-Id: I2235e13770a5562950f2767f65a25ca273479150

7 years agoMerge "Prevent moving GC from running during redefinition."
Treehugger Robot [Fri, 6 Jan 2017 03:59:24 +0000 (03:59 +0000)]
Merge "Prevent moving GC from running during redefinition."

7 years agoPrevent moving GC from running during redefinition.
Alex Light [Fri, 6 Jan 2017 01:53:00 +0000 (17:53 -0800)]
Prevent moving GC from running during redefinition.

This could cause a deadlock during deoptimization.

Test: ART_USE_READ_BARRIER=true ART_READ_BARRIER_TYPE=TABLELOOKUP mma -j40 test-art-host
Change-Id: I57e4f1a50709bf4a1817227913e61f3ef434d04a

7 years agoAvoid using ThreadList::Dump() in empty checkpoint timeout.
Hiroshi Yamauchi [Thu, 5 Jan 2017 04:32:57 +0000 (20:32 -0800)]
Avoid using ThreadList::Dump() in empty checkpoint timeout.

ThreadList::Dump() that uses a checkpoint to dump threads may get
stuck when an empty checkpoint gets stuck and isn't useful when
debugging an empty checkpoint timeout. Instead, directly use
Thread::Dump() for each runnable thread that isn't responding to an
empty checkpoint request.

Bug: 33006388
Bug: 12687968
Test: test-art-host with CC.
Change-Id: If07a205786d469eec9b1f587485c80f54fb84c4d

7 years agoMerge "Revert "Revert "Cleanup jvmti tests"""
Alex Light [Fri, 6 Jan 2017 00:46:17 +0000 (00:46 +0000)]
Merge "Revert "Revert "Cleanup jvmti tests"""

7 years agoMerge "Add some code info checking in GetCalleeSaveMethodCaller"
Mathieu Chartier [Thu, 5 Jan 2017 23:59:14 +0000 (23:59 +0000)]
Merge "Add some code info checking in GetCalleeSaveMethodCaller"

7 years agoRevert "Revert "Cleanup jvmti tests""
Alex Light [Thu, 5 Jan 2017 22:37:21 +0000 (14:37 -0800)]
Revert "Revert "Cleanup jvmti tests""

This reverts commit 2a9d198b9929560c9ab07691b3afbe275483be95.

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

Change-Id: I14bfd02f74f93e4a6b853287fcaa69f1fb027256

7 years agoMerge "Reduce the number of fences needed for monitors"
Hans Boehm [Thu, 5 Jan 2017 22:15:30 +0000 (22:15 +0000)]
Merge "Reduce the number of fences needed for monitors"

7 years agoAdd some code info checking in GetCalleeSaveMethodCaller
Mathieu Chartier [Thu, 5 Jan 2017 18:17:55 +0000 (10:17 -0800)]
Add some code info checking in GetCalleeSaveMethodCaller

Will print info if the memory region is too small for the stack maps.

Test: test-art-host

Bug: 33924573

Change-Id: I03e0151724d3a0933f3bef004e0d16ba1c6134c4

7 years agoMerge "Tests on FP Math.abs()"
Aart Bik [Thu, 5 Jan 2017 20:34:32 +0000 (20:34 +0000)]
Merge "Tests on FP Math.abs()"

7 years agoMerge "Fix unquitable apps when debug enabled."
Treehugger Robot [Thu, 5 Jan 2017 19:13:38 +0000 (19:13 +0000)]
Merge "Fix unquitable apps when debug enabled."

7 years agoMerge "Revert "Revert "Revert "Revert "Basic obsolete methods support"""""
Treehugger Robot [Thu, 5 Jan 2017 18:16:14 +0000 (18:16 +0000)]
Merge "Revert "Revert "Revert "Revert "Basic obsolete methods support"""""

7 years agoTests on FP Math.abs()
Aart Bik [Tue, 3 Jan 2017 17:53:00 +0000 (09:53 -0800)]
Tests on FP Math.abs()

Rationale:
As a "quality of implementation", rather than pure "spec compliance", we
require that Math.abs() clears the sign bit (but changes nothing else)
for all numbers, including NaN (signaling NaN may become quiet though).

These tests ensure that remains the case.

NOTE:
This is a better redo of reverted CL
https://android-review.googlesource.com/#/c/316351/

Test: test-art-host
Bug: 30758343

Change-Id: I2740f9aea19abd82335f1f000d92f1cdb469a1c3

7 years agoMerge "MIPS64: Implement table-based packed switch"
Treehugger Robot [Thu, 5 Jan 2017 17:37:56 +0000 (17:37 +0000)]
Merge "MIPS64: Implement table-based packed switch"

7 years agoMerge "Remove racy DCHECK on string dex cache."
Treehugger Robot [Thu, 5 Jan 2017 16:55:53 +0000 (16:55 +0000)]
Merge "Remove racy DCHECK on string dex cache."

7 years agoRemove racy DCHECK on string dex cache.
Nicolas Geoffray [Thu, 5 Jan 2017 15:27:03 +0000 (15:27 +0000)]
Remove racy DCHECK on string dex cache.

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

7 years agoActually record arrays in classpath.
Nicolas Geoffray [Thu, 5 Jan 2017 15:23:19 +0000 (15:23 +0000)]
Actually record arrays in classpath.

With https://android-review.googlesource.com/#/c/316151/,
I was under the wrong impression arrays all have the same
access flags. They actually have the visibility of the inner
most component type.

Therefore, we still need to record visibility of array types whose
innermost component type is in the classpath.

Test: verifier_deps_test
Change-Id: If7b1004efb679e320330258f42ced83b8eedae87

7 years agoARM: VIXL32: Fix crash in Exchange for stack slots.
Artem Serov [Thu, 29 Dec 2016 16:21:49 +0000 (16:21 +0000)]
ARM: VIXL32: Fix crash in Exchange for stack slots.

In ParallelMoveResolverARMVIXL::Exchange(int mem1, int mem2)
scratch general purpose register was used without any spilling
(like in StoreToOffset) which led to lack of scratch register
for VLDR with big offset. Now it uses two scratch S-registers.

Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-host
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-target
Change-Id: I0416a69e281d09a04dd1689efa5a8c1994c82638

7 years agoMerge "Refine receiver type when inlining based on inline caches."
Nicolas Geoffray [Thu, 5 Jan 2017 14:57:29 +0000 (14:57 +0000)]
Merge "Refine receiver type when inlining based on inline caches."

7 years agoMerge "MIPS32: java.lang.String.getChars"
Nicolas Geoffray [Thu, 5 Jan 2017 13:27:14 +0000 (13:27 +0000)]
Merge "MIPS32: java.lang.String.getChars"

7 years agoRefine receiver type when inlining based on inline caches.
Nicolas Geoffray [Wed, 4 Jan 2017 16:46:23 +0000 (16:46 +0000)]
Refine receiver type when inlining based on inline caches.

We know we're guarding for a specific type
(eg foo.getClass() == Foo.class), so we can propagate the
exact type when building the callee graph.

Test: ART_TEST_JIT=true test-art-host
Change-Id: I3e1858945afbb651cb8966b2b7d7755eccac09e1

7 years agoMerge "Revert "Disable 626-const-class-linking for JIT.""
Vladimir Marko [Thu, 5 Jan 2017 12:45:35 +0000 (12:45 +0000)]
Merge "Revert "Disable 626-const-class-linking for JIT.""

7 years agoMerge "Fix incorrect string hash value extension during cross-compilation."
Treehugger Robot [Thu, 5 Jan 2017 12:15:07 +0000 (12:15 +0000)]
Merge "Fix incorrect string hash value extension during cross-compilation."

7 years agoMerge "Limit Jack threads during tests"
Sebastien Hertz [Thu, 5 Jan 2017 10:28:56 +0000 (10:28 +0000)]
Merge "Limit Jack threads during tests"

7 years agoLimit Jack threads during tests
Sebastien Hertz [Wed, 4 Jan 2017 15:07:57 +0000 (16:07 +0100)]
Limit Jack threads during tests

In default mode, run Jack with 4 threads to help reduce memory
footprint and thread contention. These are the same settings than
the Android build.

For the buildbot (where the Jack server is disabled), run Jack in
single-threaded mode to reduce the global memory consumption.

Bug: 31737153
Test: make -j32 test-art-host
Change-Id: I6a14efce92ea18dba008e6daa26cd6403e5eb503

7 years agoReduce the number of fences needed for monitors
Hans Boehm [Thu, 15 Dec 2016 21:12:59 +0000 (13:12 -0800)]
Reduce the number of fences needed for monitors

Add the necessary CasWeakAcquire primitives for LockWords.

Have MonitorEnter initially read the lockword using a
memory_order_relaxed operation. In the unlikely case we need more,
compensate with an explicit fence.

In the uncontended case, install the thin lock with Acquire,
rather than SequentiallyConsistent semantics.

Have MonitorExit use a Release instead of SequentiallyConsistent
CAS in the ReadBarrier case. Add TODO for the other case.

Together, these should usually eliminate 3 fences (or acq/rel)
per critical section.

Have Install() only use Release ordering.

Add TODO for inflation spinning, which looks to me like it could be
improved appreciably.

Drive-by fix:

GetMaxSpinsBeforeThinLockInflation spelling

Test: Build for several targets, boot, m art-test-host art-test-target

Change-Id: I2cab09723252065f6365e4234ee3249c69ece888

7 years agoMerge "ART: Remove dequicken map from VerifiedMethod"
Treehugger Robot [Wed, 4 Jan 2017 22:59:02 +0000 (22:59 +0000)]
Merge "ART: Remove dequicken map from VerifiedMethod"

7 years agoART: Remove dequicken map from VerifiedMethod
Andreas Gampe [Wed, 4 Jan 2017 20:04:05 +0000 (12:04 -0800)]
ART: Remove dequicken map from VerifiedMethod

Remove now unused VerifiedMethod's dequicken map. Follow-up to
c51c7ca7a779563d153c137c6bf01c3ea532a6c9.

Results on a large well-known app in speed compile with -j4:

Before:
 dex2oat took [...] native alloc=84MB [...] swap=208MB [...]
After:
 dex2oat took [...] native alloc=76MB [...] swap=208MB [...]

Bug: 34053922
Test: m clean-oat-host && m test-art-host
Change-Id: Ie95fd297299a0f5fac0c8c702773ee8372f662b6

7 years agoRemove bogus DCHECK.
Nicolas Geoffray [Wed, 4 Jan 2017 11:49:00 +0000 (11:49 +0000)]
Remove bogus DCHECK.

The code may be executed concurrently by multiple threads,
so the flag may already be set.

Test: test-art-host
bug:34074968
Change-Id: I162b90a853ce53e6b7063754bbfce5d68cffc82a

7 years agoMerge "Revert "Revert "Avoid scratch register exhaustion during ARM64 stack slot...
Roland Levillain [Wed, 4 Jan 2017 15:22:32 +0000 (15:22 +0000)]
Merge "Revert "Revert "Avoid scratch register exhaustion during ARM64 stack slot moves."""