OSDN Git Service

android-x86/art.git
7 years agoART: Add ThreadGroup API support
Andreas Gampe [Fri, 13 Jan 2017 01:34:39 +0000 (17:34 -0800)]
ART: Add ThreadGroup API support

Add support for GetThreadGroupInfo, GetThreadGroupChildren and
GetTopThreadGroups. Add tests.

Bug: 31455788
Test: m test-art-host-run-test-925-threadgroups
Change-Id: I56809c95dfd2666c2e18769a8960d6b1604274b4

7 years agoMerge "ART tests: do not retrieve OatQuickMethodHeader for bridge methods"
Nicolas Geoffray [Fri, 13 Jan 2017 15:10:45 +0000 (15:10 +0000)]
Merge "ART tests: do not retrieve OatQuickMethodHeader for bridge methods"

7 years agoMerge "MIPS32: Refined comment in java.lang.Math.abs(float/double) intrinsics"
Treehugger Robot [Fri, 13 Jan 2017 15:03:01 +0000 (15:03 +0000)]
Merge "MIPS32: Refined comment in java.lang.Math.abs(float/double) intrinsics"

7 years agoMerge "Revert "Update ART run-tests for new Jack optimizations""
Sebastien Hertz [Fri, 13 Jan 2017 14:41:56 +0000 (14:41 +0000)]
Merge "Revert "Update ART run-tests for new Jack optimizations""

7 years agoRevert "Update ART run-tests for new Jack optimizations"
Sebastien Hertz [Fri, 13 Jan 2017 14:27:26 +0000 (14:27 +0000)]
Revert "Update ART run-tests for new Jack optimizations"

This reverts commit 8960b0ba78a70948810f0e178f51b0a6d201985d.

Bug: 34066768
Test: make -j32 test-art-host
Change-Id: Ifeb22d1e909d31ac6dd31bc0a66bab41ccb53425

7 years agoMIPS32: Refined comment in java.lang.Math.abs(float/double) intrinsics
Goran Jakovljevic [Fri, 13 Jan 2017 11:13:39 +0000 (12:13 +0100)]
MIPS32: Refined comment in java.lang.Math.abs(float/double) intrinsics

Bug: 30758343
Test: ./run-test 631-checker-fp-abs on CI20

Change-Id: Id7270c40887a0b904af59d6034b6867033c7dba3

7 years agoMerge "Update ART run-tests for new Jack optimizations"
Sebastien Hertz [Fri, 13 Jan 2017 10:23:47 +0000 (10:23 +0000)]
Merge "Update ART run-tests for new Jack optimizations"

7 years agoMerge "Revert "Revert "Make object allocation entrypoints only take a class."""
Nicolas Geoffray [Fri, 13 Jan 2017 09:28:47 +0000 (09:28 +0000)]
Merge "Revert "Revert "Make object allocation entrypoints only take a class."""

7 years agoMerge "Dont keep around scoped allocated ArtMethod after thread suspension."
Nicolas Geoffray [Fri, 13 Jan 2017 09:28:20 +0000 (09:28 +0000)]
Merge "Dont keep around scoped allocated ArtMethod after thread suspension."

7 years agoDont keep around scoped allocated ArtMethod after thread suspension.
Nicolas Geoffray [Thu, 12 Jan 2017 15:15:45 +0000 (15:15 +0000)]
Dont keep around scoped allocated ArtMethod after thread suspension.

Those methods are used after thread suspension, and their eg
declaring class is read. Because the GC does not see these methods,
the declaring class can move and the code will then access a stalled
pointer.

Test: test-art-host, ART_TEST_GC_STRESS=true/false
Test: 690-default-smali
Change-Id: I632197bc51f0da1dcf33b08195e8cfa4ccd73188

7 years agoMerge "Revert "Revert "Refactor ClassLinker::LinkInterfaceMethods()."""
Nicolas Geoffray [Fri, 13 Jan 2017 09:22:08 +0000 (09:22 +0000)]
Merge "Revert "Revert "Refactor ClassLinker::LinkInterfaceMethods()."""

7 years agoMerge "ART: Add GetThreadState"
Andreas Gampe [Fri, 13 Jan 2017 05:16:14 +0000 (05:16 +0000)]
Merge "ART: Add GetThreadState"

7 years agoMerge "ART: Fix GetAllStackTraces"
Andreas Gampe [Fri, 13 Jan 2017 03:35:49 +0000 (03:35 +0000)]
Merge "ART: Fix GetAllStackTraces"

7 years agoMerge "Avoid suspending heap task thread for getting stack traces"
Mathieu Chartier [Fri, 13 Jan 2017 03:35:15 +0000 (03:35 +0000)]
Merge "Avoid suspending heap task thread for getting stack traces"

7 years agoART: Add GetThreadState
Andreas Gampe [Thu, 12 Jan 2017 21:22:16 +0000 (13:22 -0800)]
ART: Add GetThreadState

Add support for GetThreadState. Add test.

Bug: 31684593
Test: m test-art-host-run-test-924-threads
Change-Id: I67a240c711e1165cfb72a856fc59ca69abaec3f6

7 years agoART: Fix GetAllStackTraces
Andreas Gampe [Fri, 13 Jan 2017 01:43:13 +0000 (17:43 -0800)]
ART: Fix GetAllStackTraces

Correctly select threads, skip starting threads. Amend test.

Bug: 31684812
Test: m ART_TEST_JIT=true test-art-host-run-test-911-get-stack-trace
Change-Id: Ieae6ba135ec7ec677615064ca020e10e14ec2cfe

7 years agoMerge "Revert "Revert "ART: Ensure plugin is loaded on AttachAgent"""
Andreas Gampe [Fri, 13 Jan 2017 00:51:03 +0000 (00:51 +0000)]
Merge "Revert "Revert "ART: Ensure plugin is loaded on AttachAgent"""

7 years agoMerge "ART: Add GetAllStackTraces"
Andreas Gampe [Thu, 12 Jan 2017 23:26:55 +0000 (23:26 +0000)]
Merge "ART: Add GetAllStackTraces"

7 years agoAvoid suspending heap task thread for getting stack traces
Mathieu Chartier [Thu, 12 Jan 2017 22:51:44 +0000 (14:51 -0800)]
Avoid suspending heap task thread for getting stack traces

Instead of suspending the heap task thread, GetThreadStack (called by
VMStack_fillStackTraceElements and VMStack_getThreadStackTrace) will
return an empty thread stack. This fixes possible deadlocks caused by
suspending the GC thread and doing allocations for the stack trace.

Bug: 28261069

Test: test-art-host

Change-Id: I45a0b8ac94a99d6bbcfcdc2b41afadf941ec0138

7 years agoMerge "ART: Add GetCurrentThread and GetThreadInfo"
Treehugger Robot [Thu, 12 Jan 2017 20:22:57 +0000 (20:22 +0000)]
Merge "ART: Add GetCurrentThread and GetThreadInfo"

7 years agoART: Add GetAllStackTraces
Andreas Gampe [Thu, 12 Jan 2017 00:37:16 +0000 (16:37 -0800)]
ART: Add GetAllStackTraces

Add support for GetAllStackTraces. Add a test.

Bug: 31684812
Test: m test-art-host-run-test-911-get-stack-trace
Change-Id: I81f783a6b37bfc7b68c10ba6c803a11e1bd5d350

7 years agoMerge "Don't need to block in AddWeakGlobalRef and MonitorList::Add under CC."
Hiroshi Yamauchi [Thu, 12 Jan 2017 19:50:46 +0000 (19:50 +0000)]
Merge "Don't need to block in AddWeakGlobalRef and MonitorList::Add under CC."

7 years agoRevert "Revert "Refactor ClassLinker::LinkInterfaceMethods().""
Vladimir Marko [Thu, 12 Jan 2017 18:37:06 +0000 (18:37 +0000)]
Revert "Revert "Refactor ClassLinker::LinkInterfaceMethods().""

Drop the fix for using the correct linear allocator.
That fix breaks some debug checks that need non-trivial
changes and extra testing, so leave that for another CL.

This reverts commit dce413d333c88c86f28b9d0fe3a8052942ed9080.

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

7 years agoMerge "Fix race condition btw DelayReferenceRefernent vs Reference.clear()."
Hiroshi Yamauchi [Thu, 12 Jan 2017 18:58:38 +0000 (18:58 +0000)]
Merge "Fix race condition btw DelayReferenceRefernent vs Reference.clear()."

7 years agoRevert "Revert "ART: Ensure plugin is loaded on AttachAgent""
Andreas Gampe [Thu, 12 Jan 2017 16:59:39 +0000 (16:59 +0000)]
Revert "Revert "ART: Ensure plugin is loaded on AttachAgent""

Agents require the JVMTI plugin. Ensure that it is loaded when
trying to satisfy an AttachAgent request. Amend test 909.

This reverts commit 98cf7cf8766770dba2718a6131345cc7f57c5bc7.
Blacklist debuggable test configurations for negative test.

Bug: 31682382
Test: m test-art-host-run-test-909-attach-agent
Change-Id: I7720a18689bd6ddee38292dd42faf190fc06d14d

7 years agoART: Add GetCurrentThread and GetThreadInfo
Andreas Gampe [Thu, 12 Jan 2017 04:57:40 +0000 (20:57 -0800)]
ART: Add GetCurrentThread and GetThreadInfo

Add support for GetCurrentThread and GetThreadInfo. Add tests.

Bug: 31684593
Test: m test-art-host-run-test-924-threads
Change-Id: Ic2bc4c9b5c283e4eefe4075b6abe251b8be499c8

7 years agoMerge "Revert "Refactor ClassLinker::LinkInterfaceMethods().""
Nicolas Geoffray [Thu, 12 Jan 2017 18:00:02 +0000 (18:00 +0000)]
Merge "Revert "Refactor ClassLinker::LinkInterfaceMethods().""

7 years agoRevert "Refactor ClassLinker::LinkInterfaceMethods()."
Nicolas Geoffray [Thu, 12 Jan 2017 17:59:39 +0000 (17:59 +0000)]
Revert "Refactor ClassLinker::LinkInterfaceMethods()."

Fails libcore tests.

This reverts commit afbd71ffbcc7b37067d3a4703648e62fc0e55e6f.

Change-Id: I611620f915025a0c077a78a480b2b730b3be3de8

7 years agoUpdate ART run-tests for new Jack optimizations
Sebastien Hertz [Mon, 9 Jan 2017 13:26:12 +0000 (14:26 +0100)]
Update ART run-tests for new Jack optimizations

Disables Jack's use/def optimization that breaks run-test
442-checker-constant-folding.

This is done by introducing the "--jack-option" argument in the
build script. Tests can now individually pass jack options (like test
442-checker-constant-folding does now).

Bug: 34066768
Test: make -j32 test-art-host

(cherry picked from commit 282f2b10edbd03ffd2a98910babbd2607d1c1fb1)

Change-Id: Id5b247cfa2cfb743d28cb6f4e38eb79421c56ed9

7 years agoMerge "ART: Simplify 9xx OnLoad setup"
Treehugger Robot [Thu, 12 Jan 2017 16:51:36 +0000 (16:51 +0000)]
Merge "ART: Simplify 9xx OnLoad setup"

7 years agoRevert "Revert "Make object allocation entrypoints only take a class.""
Nicolas Geoffray [Thu, 12 Jan 2017 15:35:12 +0000 (15:35 +0000)]
Revert "Revert "Make object allocation entrypoints only take a class.""

This reverts commit f7aaacd97881c6924b8212c7f8fe4a4c8721ef53.

Change-Id: I6756cd1e6110bb45231f62f5e388f16c044cb145

7 years agoMerge "Refactor ClassLinker::LinkInterfaceMethods()."
Treehugger Robot [Thu, 12 Jan 2017 12:39:01 +0000 (12:39 +0000)]
Merge "Refactor ClassLinker::LinkInterfaceMethods()."

7 years agoMerge "MIPS32: Change java.lang.Math.abs(float/double) intrinsics"
Treehugger Robot [Thu, 12 Jan 2017 12:24:01 +0000 (12:24 +0000)]
Merge "MIPS32: Change java.lang.Math.abs(float/double) intrinsics"

7 years agoRefactor ClassLinker::LinkInterfaceMethods().
Vladimir Marko [Mon, 19 Dec 2016 17:32:17 +0000 (17:32 +0000)]
Refactor ClassLinker::LinkInterfaceMethods().

Add a helper class and split LinkInterfaceMethods() into
several functions to improve readability. Even with this
change, it is still almost 250 lines long.

Fix the method array reallocation to use the appropriate
linear allocator for the class's defining loader. Given that
this is a native reallocation, failure to reallocate would
result in an abort, so CHECK() that we get a non-null array
instead of expecting a null and asserting a pending OOME.

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

7 years agoMerge "Revert "ART: Ensure plugin is loaded on AttachAgent""
Nicolas Geoffray [Thu, 12 Jan 2017 10:46:23 +0000 (10:46 +0000)]
Merge "Revert "ART: Ensure plugin is loaded on AttachAgent""

7 years agoRevert "ART: Ensure plugin is loaded on AttachAgent"
Nicolas Geoffray [Thu, 12 Jan 2017 10:46:04 +0000 (10:46 +0000)]
Revert "ART: Ensure plugin is loaded on AttachAgent"

Test fails.
Bug: 31682382

This reverts commit ad2dc875ce29c3fafc1129a2a25184df28b66a10.

Change-Id: Id15d9d5478d2f72a4dc59f119944a311be7bc989

7 years agoMIPS32: Change java.lang.Math.abs(float/double) intrinsics
Goran Jakovljevic [Wed, 11 Jan 2017 12:42:38 +0000 (13:42 +0100)]
MIPS32: Change java.lang.Math.abs(float/double) intrinsics

abs.s and abs.d instructions can't be used when NAN2008=0 (R2 and
before). In these cases, abs(NaN) might change other bits (not just
sign bit).

This fixes test failure 631-checker-fp-abs for MIPS32.

Bug: 30758343
Test: mma test-art-target-run-test on CI20

Change-Id: I352efd66f2f72740406462c9ccc3bc4b1b5aea20

7 years agoMerge "ART: Ensure plugin is loaded on AttachAgent"
Treehugger Robot [Thu, 12 Jan 2017 07:20:35 +0000 (07:20 +0000)]
Merge "ART: Ensure plugin is loaded on AttachAgent"

7 years agoMerge "Revert "Make object allocation entrypoints only take a class.""
Treehugger Robot [Thu, 12 Jan 2017 06:19:22 +0000 (06:19 +0000)]
Merge "Revert "Make object allocation entrypoints only take a class.""

7 years agoART: Simplify 9xx OnLoad setup
Andreas Gampe [Thu, 12 Jan 2017 03:53:50 +0000 (19:53 -0800)]
ART: Simplify 9xx OnLoad setup

Provide the default implementation in common_load.cc, and only
mark cases that deviate.

Bug: 31455788
Test: m test-art-host-run-test
Change-Id: I40d467fb344405c443805749ced6717574430b75

7 years agoRevert "Make object allocation entrypoints only take a class."
Hiroshi Yamauchi [Thu, 12 Jan 2017 02:58:38 +0000 (02:58 +0000)]
Revert "Make object allocation entrypoints only take a class."

960-default-smali64 is failing.

This reverts commit 2b615ba29c4dfcf54aaf44955f2eac60f5080b2e.

Change-Id: Iebb8ee5a917fa84c5f01660ce432798524d078ef

7 years agoART: Ensure plugin is loaded on AttachAgent
Andreas Gampe [Wed, 11 Jan 2017 16:36:59 +0000 (08:36 -0800)]
ART: Ensure plugin is loaded on AttachAgent

Agents require the JVMTI plugin. Ensure that it is loaded when
trying to satisfy an AttachAgent request. Amend test 909.

Bug: 31682382
Test: m test-art-host-run-test-909-attach-agent
Change-Id: Id99d0315b5b2577167dd8f8448a052e04f3ed2e5

7 years agoMerge "ART: Add raw monitor API"
Andreas Gampe [Thu, 12 Jan 2017 01:21:20 +0000 (01:21 +0000)]
Merge "ART: Add raw monitor API"

7 years agoART: Add raw monitor API
Andreas Gampe [Tue, 10 Jan 2017 00:42:21 +0000 (16:42 -0800)]
ART: Add raw monitor API

Add support for CreateRawMonitor, DestroyRawMonitor,
RawMonitorEnter, RawMonitorExit, RawMonitorWait, RawMonitorNotify
and RawMonitorNotifyAll.

Bug: 31455788
Test: m test-art-host-run-test-923-monitors
Change-Id: I4eeab8011b547ae0ea8b2317701c68ce56677f79

7 years agoMerge "Set timeout before connect to adb in jdwp."
Treehugger Robot [Wed, 11 Jan 2017 21:15:47 +0000 (21:15 +0000)]
Merge "Set timeout before connect to adb in jdwp."

7 years agoMerge "Increase thread suspension timeout for debug builds"
Mathieu Chartier [Wed, 11 Jan 2017 21:10:28 +0000 (21:10 +0000)]
Merge "Increase thread suspension timeout for debug builds"

7 years agoMerge "Revert "ART: Compiler support for invoke-polymorphic.""
Orion Hodson [Wed, 11 Jan 2017 19:18:51 +0000 (19:18 +0000)]
Merge "Revert "ART: Compiler support for invoke-polymorphic.""

7 years agoRevert "ART: Compiler support for invoke-polymorphic."
Orion Hodson [Wed, 11 Jan 2017 18:58:15 +0000 (18:58 +0000)]
Revert "ART: Compiler support for invoke-polymorphic."

This reverts commit 02e3092f8d98f339588e48691db77f227b48ac1e.

Reasons for revert:

- Breaks MIPS/MIPS64 build.
- Fails under GCStress test on x64.
- Different x64 build configuration doesn't like relocation.

Change-Id: I512555b38165d05f8a07e8aed528f00302061001

7 years agoIncrease thread suspension timeout for debug builds
Mathieu Chartier [Wed, 11 Jan 2017 18:09:30 +0000 (10:09 -0800)]
Increase thread suspension timeout for debug builds

The current timeout may be causing some test failures. Also print how
long we waited.

Test: test-art-host -j32

Change-Id: Ib8a9c68ab4571efc8456c098b03bf35f648bfaf1

7 years agoMerge "liblog: use log/log.h to access ALOG macros"
Treehugger Robot [Wed, 11 Jan 2017 18:30:04 +0000 (18:30 +0000)]
Merge "liblog: use log/log.h to access ALOG macros"

7 years agoMerge "ART: Compiler support for invoke-polymorphic."
Treehugger Robot [Wed, 11 Jan 2017 18:08:03 +0000 (18:08 +0000)]
Merge "ART: Compiler support for invoke-polymorphic."

7 years agoMerge "Move most of art::Thread to ObjPtr"
Mathieu Chartier [Wed, 11 Jan 2017 17:59:34 +0000 (17:59 +0000)]
Merge "Move most of art::Thread to ObjPtr"

7 years agoMerge "Fix possible deadlock in AddAccessFlags and ClearAccessFlags"
Mathieu Chartier [Wed, 11 Jan 2017 17:47:30 +0000 (17:47 +0000)]
Merge "Fix possible deadlock in AddAccessFlags and ClearAccessFlags"

7 years agoART: Compiler support for invoke-polymorphic.
Orion Hodson [Thu, 1 Dec 2016 10:33:51 +0000 (10:33 +0000)]
ART: Compiler support for invoke-polymorphic.

Adds basic support to invoke method handles in compiled code.

Enables method verification for methods containing invoke-polymorphic.

Adds k45cc/k45rc output to Instruction::DumpString() which
was found to be missing when enabling verification.

Include stack traces in test 957-methodhandle-transforms for
failures so they can be easily identified.

Bug: 30550796,33191393
Test: art/test/run-test 953
Test: m test-art-run-test
Change-Id: Ic9a96ea24906087597d96ad8159a5bc349d06950

7 years agoliblog: use log/log.h to access ALOG macros
Mark Salyzyn [Tue, 10 Jan 2017 23:12:38 +0000 (15:12 -0800)]
liblog: use log/log.h to access ALOG macros

Test: compile
Bug: 30465923
Change-Id: Ia2699768da1af6d508472360baa08c77c07fca01

7 years agoMerge "Keep resolved String in HLoadString."
Nicolas Geoffray [Wed, 11 Jan 2017 14:05:08 +0000 (14:05 +0000)]
Merge "Keep resolved String in HLoadString."

7 years agoMerge "ARM: Instruction set features clean-up."
Treehugger Robot [Wed, 11 Jan 2017 12:58:15 +0000 (12:58 +0000)]
Merge "ARM: Instruction set features clean-up."

7 years agoMerge "Remove the unused SMP instruction set feature option."
Vladimir Marko [Wed, 11 Jan 2017 11:25:38 +0000 (11:25 +0000)]
Merge "Remove the unused SMP instruction set feature option."

7 years agoMerge "Make object allocation entrypoints only take a class."
Nicolas Geoffray [Wed, 11 Jan 2017 10:37:54 +0000 (10:37 +0000)]
Merge "Make object allocation entrypoints only take a class."

7 years agoMake object allocation entrypoints only take a class.
Nicolas Geoffray [Fri, 6 Jan 2017 14:40:07 +0000 (14:40 +0000)]
Make object allocation entrypoints only take a class.

Change motivated by:
- Dex cache compression: having the allocation fast path do a
  dex cache lookup will be too expensive. So instead, rely on the
  compiler having direct access to the class (either through BSS for
  AOT, or JIT tables for JIT).
- Inlining: the entrypoints relied on the caller of the allocation to
  have the same dex cache as the outer method (stored at the bottom of
  the stack). This meant we could not inline methods from a different
  dex file that do allocations. By avoiding the dex cache lookup in
  the entrypoint, we can now remove this restriction.

Code expansion on average for Docs/Gms/FB/Framework (go/lem numbers):
- Around 0.8% on arm64
- Around 1% for x64, arm
- Around 1.5% on x86

Test: test-art-host, test-art-target, ART_USE_READ_BARRIER=true/false
Test: test-art-host, test-art-target,  ART_DEFAULT_GC_TYPE=SS ART_USE_TLAB=true

Change-Id: I41f3748bb4d251996aaf6a90fae4c50176f9295f

7 years agoMerge "Do not return patchoat for dexopt needed."
Treehugger Robot [Wed, 11 Jan 2017 10:28:16 +0000 (10:28 +0000)]
Merge "Do not return patchoat for dexopt needed."

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 agoFix possible deadlock in AddAccessFlags and ClearAccessFlags
Mathieu Chartier [Wed, 11 Jan 2017 00:48:11 +0000 (16:48 -0800)]
Fix possible deadlock in AddAccessFlags and ClearAccessFlags

Reload the value each loop iteration or else it will spin forever
if the CAS fails due to another thread adding a different flag.

Test: mm

Change-Id: Idc320921597acc20d56301899b398756563029f2

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 agoMove most of art::Thread to ObjPtr
Mathieu Chartier [Tue, 10 Jan 2017 23:54:41 +0000 (15:54 -0800)]
Move most of art::Thread to ObjPtr

Bug: 31113334

Test: test-art-host

Change-Id: I73d0de3c875d3ec3d732034fdc961dae79ef4070

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 agoKeep resolved String in HLoadString.
Nicolas Geoffray [Mon, 9 Jan 2017 20:54:52 +0000 (20:54 +0000)]
Keep resolved String in HLoadString.

For the following reasons:
- Avoids needing to do a lookup again in CodeGenerator::EmitJitRoots.
- Fixes races where we the string was GC'ed before CodeGenerator::EmitJitRoots.
- Makes it possible to do GVN on the same string but defined in different
  dex files.

Test: test-art-host, test-art-target
Change-Id: If2b5d3079f7555427b1b96ab04546b3373fcf921

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 agoSet timeout before connect to adb in jdwp.
Tao Wu [Sun, 8 Jan 2017 09:20:21 +0000 (01:20 -0800)]
Set timeout before connect to adb in jdwp.

Sometimes adb is in buggy status and just doesn't accept our
connection. Add a timeout in art side to make sure we aren't
stuck there.

Bug: 34140694
Test: mma -j40 test-art-host
Test: ./art/tools/run-jdwp-tests.sh --mode=host --variant=X64
Change-Id: Ia7756d5c03b57e87fe9642b0d32728aa6cead65c
Signed-off-by: Tao Wu <lepton@google.com>
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