OSDN Git Service

android-x86/art.git
7 years agoMerge "ART: Add Thread TLS support"
Treehugger Robot [Mon, 16 Jan 2017 18:58:33 +0000 (18:58 +0000)]
Merge "ART: Add Thread TLS support"

7 years agoART: Add Thread TLS support
Andreas Gampe [Sat, 14 Jan 2017 00:47:14 +0000 (16:47 -0800)]
ART: Add Thread TLS support

Add support for GetThreadLocalStorage and SetThreadLocalStorage.
Add test.

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

7 years agoMerge "ART: Add GetAllThreads"
Treehugger Robot [Mon, 16 Jan 2017 16:07:49 +0000 (16:07 +0000)]
Merge "ART: Add GetAllThreads"

7 years agoMerge changes I168f24de,I8ec60a98,I3c426ed7,Ic809b0f3
Treehugger Robot [Mon, 16 Jan 2017 15:50:46 +0000 (15:50 +0000)]
Merge changes I168f24de,I8ec60a98,I3c426ed7,Ic809b0f3

* changes:
  Implement HLoadClass/kBssEntry for boot image.
  Store resolved types for AOT code in .bss.
  Make runtime call on main for HLoadClass/kDexCacheViaMethod.
  Remove HLoadClass::LoadKind::kDexCachePcRelative.

7 years agoMerge "ART: Fix artInvokePolymorphic."
Orion Hodson [Mon, 16 Jan 2017 14:45:28 +0000 (14:45 +0000)]
Merge "ART: Fix artInvokePolymorphic."

7 years agoMerge "MIPS64: Make GetFeatureString() returns default instead of empty string"
Treehugger Robot [Mon, 16 Jan 2017 14:39:03 +0000 (14:39 +0000)]
Merge "MIPS64: Make GetFeatureString() returns default instead of empty string"

7 years agoART: Fix artInvokePolymorphic.
Orion Hodson [Mon, 16 Jan 2017 13:52:20 +0000 (13:52 +0000)]
ART: Fix artInvokePolymorphic.

artInvokePolymorphic called the wrong visit method on
RememberForGcArgumentVisitor. It should have called VisitArguments()
rather than Visit().

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

7 years agoImplement HLoadClass/kBssEntry for boot image.
Vladimir Marko [Fri, 13 Jan 2017 13:02:58 +0000 (13:02 +0000)]
Implement HLoadClass/kBssEntry for boot image.

Test: m test-art-host
Test: m test-art-host with CC
Test: m test-art-target on Nexus 9
Test: Nexus 9 boots.
Test: Build aosp_mips64-eng
Bug: 30627598
Change-Id: I168f24dedd5fb54a1e4215ecafb947ffb0dc3280

7 years agoMerge "Revert "ART: Add ThreadGroup API support""
Treehugger Robot [Mon, 16 Jan 2017 12:39:37 +0000 (12:39 +0000)]
Merge "Revert "ART: Add ThreadGroup API support""

7 years agoStore resolved types for AOT code in .bss.
Vladimir Marko [Mon, 9 Jan 2017 15:03:12 +0000 (15:03 +0000)]
Store resolved types for AOT code in .bss.

Test: m test-art-host
Test: m test-art-target on Nexus 9.
Test: Nexus 9 boots.
Test: Build aosp_mips64-eng.
Bug: 30627598
Bug: 34193123
Change-Id: I8ec60a98eb488cb46ae3ea56341f5709dad4f623

7 years agoMake runtime call on main for HLoadClass/kDexCacheViaMethod.
Vladimir Marko [Fri, 6 Jan 2017 14:04:23 +0000 (14:04 +0000)]
Make runtime call on main for HLoadClass/kDexCacheViaMethod.

Remove dependency of the compiled code on types dex cache
array in preparation for changing to a hash-based array.

Test: m test-art-host
Test: m test-art-target on Nexus 9
Bug: 30627598
Change-Id: I3c426ed762c12eb9eb4bb61ea9a23a0659abf0a2

7 years agoRemove HLoadClass::LoadKind::kDexCachePcRelative.
Vladimir Marko [Fri, 6 Jan 2017 11:45:47 +0000 (11:45 +0000)]
Remove HLoadClass::LoadKind::kDexCachePcRelative.

Test: m test-art-host
Test: m test-art-target-run-test-552-checker-sharpening
Bug: 30627598
Change-Id: Ic809b0f3a8ed0bd4dc7ab67aa64866f9cdff9bdb

7 years agoMerge "Revert "Revert "ART: Compiler support for invoke-polymorphic."""
Orion Hodson [Mon, 16 Jan 2017 12:05:10 +0000 (12:05 +0000)]
Merge "Revert "Revert "ART: Compiler support for invoke-polymorphic."""

7 years agoRevert "ART: Add ThreadGroup API support"
Nicolas Geoffray [Mon, 16 Jan 2017 10:27:16 +0000 (10:27 +0000)]
Revert "ART: Add ThreadGroup API support"

Test fails

Bug: 31455788

This reverts commit 02afcde4132070d925838bc09c0f24d1bd45273d.

Change-Id: I470becb29fda54db0db6f764a83efc926badb555

7 years agoMIPS64: Make GetFeatureString() returns default instead of empty string
Goran Jakovljevic [Mon, 16 Jan 2017 09:22:29 +0000 (10:22 +0100)]
MIPS64: Make GetFeatureString() returns default instead of empty string

Since there isn't any feature left for MIPS64 (smp was recently
removed), GetFeatureString() returns an empty string. This causes
failures when running run-tests. dex2oat fails with following message:

Error parsing '--instruction-set-features=': No instruction set
features specified

Also change expectations in instruction_set_features_mips64_test.

Test: mma test-art-host-gtest
Test: mma test-art-target-gtest-instruction_set_features_mips64_test

Change-Id: Icc60a676a1b2fb10f89c888fa8a0d21fd0a105b5

7 years agoRevert "Revert "ART: Compiler support for invoke-polymorphic.""
Orion Hodson [Fri, 13 Jan 2017 11:53:47 +0000 (11:53 +0000)]
Revert "Revert "ART: Compiler support for invoke-polymorphic.""

This reverts commit 0fb5af1c8287b1ec85c55c306a1c43820c38a337.

This takes us back to the original change and attempts to fix the
issues encountered:

- Adds transition record push/pop around artInvokePolymorphic.
- Changes X86/X64 relocations for MacSDK.
- Implements MIPS entrypoint for art_quick_invoke_polymorphic.
- Corrects size of returned reference in art_quick_invoke_polymorphic
  on ARM.

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

Change-Id: Ib6b93e00b37b9d4ab743a3470ab3d77fe857cda8

7 years agoMerge "Revert "Try really hard for JIT in test 916""
Alex Light [Sat, 14 Jan 2017 01:46:28 +0000 (01:46 +0000)]
Merge "Revert "Try really hard for JIT in test 916""

7 years agoMerge "Implement RedefineClasses, also redefine multiple classes atomically."
Alex Light [Sat, 14 Jan 2017 01:44:56 +0000 (01:44 +0000)]
Merge "Implement RedefineClasses, also redefine multiple classes atomically."

7 years agoMerge "ART: Add GetFrameCount and GetFrameLocation"
Andreas Gampe [Sat, 14 Jan 2017 00:52:22 +0000 (00:52 +0000)]
Merge "ART: Add GetFrameCount and GetFrameLocation"

7 years agoART: Add GetAllThreads
Andreas Gampe [Fri, 13 Jan 2017 22:40:58 +0000 (14:40 -0800)]
ART: Add GetAllThreads

Add support for GetAllThreads. Add a test.

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

7 years agoART: Add GetFrameCount and GetFrameLocation
Andreas Gampe [Fri, 13 Jan 2017 17:21:42 +0000 (09:21 -0800)]
ART: Add GetFrameCount and GetFrameLocation

Add support for GetFrameCount and GetFrameLocation. Add tests.

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

7 years agoRevert "Try really hard for JIT in test 916"
Alex Light [Fri, 13 Jan 2017 22:47:50 +0000 (22:47 +0000)]
Revert "Try really hard for JIT in test 916"

This reverts commit a64fa43345124eb7891b9d6a6258f6ed0cbd1504.

Reason for revert:  makes test-art-host-run-test-debug-prebuild-interpreter-relocate-trace-cms-checkjni-picimage-npictest-ndebuggable-916-obsolete-jit fail

Test: Treehugger
Change-Id: Idce6fc9310fe85ae62dd19da1e978299951c19ee

7 years agoImplement RedefineClasses, also redefine multiple classes atomically.
Alex Light [Tue, 10 Jan 2017 23:00:05 +0000 (15:00 -0800)]
Implement RedefineClasses, also redefine multiple classes atomically.

We need to be able to redefine multiple classes atomically for JVMTI.
This implements that behavior. It also implements RedefineClasses
since until we have class transformation it is trivial.

Test: mma -j40 test-art-host

Change-Id: I80784f919a4366c465b93fede94f4bf763c0ee70

7 years agoMerge "ART: Remove suspension from AttachAgent"
Treehugger Robot [Fri, 13 Jan 2017 20:40:29 +0000 (20:40 +0000)]
Merge "ART: Remove suspension from AttachAgent"

7 years agoMerge "Make our jvmti run-tests work with the RI again."
Treehugger Robot [Fri, 13 Jan 2017 20:01:49 +0000 (20:01 +0000)]
Merge "Make our jvmti run-tests work with the RI again."

7 years agoMerge "ART: Add ThreadGroup API support"
Treehugger Robot [Fri, 13 Jan 2017 19:56:51 +0000 (19:56 +0000)]
Merge "ART: Add ThreadGroup API support"

7 years agoMerge "Try really hard for JIT in test 916"
Treehugger Robot [Fri, 13 Jan 2017 19:53:13 +0000 (19:53 +0000)]
Merge "Try really hard for JIT in test 916"

7 years agoMerge "Complete unrolling of loops with small body and trip count one."
Treehugger Robot [Fri, 13 Jan 2017 19:48:20 +0000 (19:48 +0000)]
Merge "Complete unrolling of loops with small body and trip count one."

7 years agoART: Remove suspension from AttachAgent
Andreas Gampe [Fri, 13 Jan 2017 18:46:01 +0000 (10:46 -0800)]
ART: Remove suspension from AttachAgent

It conflicts with calls later. Every plugin needs to do local
protections for itself.

Follow-up to commit ad2dc875ce29c3fafc1129a2a25184df28b66a10.

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

7 years agoComplete unrolling of loops with small body and trip count one.
Aart Bik [Wed, 11 Jan 2017 18:20:43 +0000 (10:20 -0800)]
Complete unrolling of loops with small body and trip count one.

Rationale:
Avoids the unnecessary loop control overhead, suspend check,
and exposes more opportunities for constant folding in the
resulting loop body. Fully unrolls loop in execute() of
the Dhrystone benchmark (3% to 8% improvements).

Test: test-art-host

Change-Id: If30f38caea9e9f87a929df041dfb7ed1c227aba3

7 years agoMerge "ART: Add GetThreadListStackTraces"
Treehugger Robot [Fri, 13 Jan 2017 16:54:30 +0000 (16:54 +0000)]
Merge "ART: Add GetThreadListStackTraces"

7 years agoMerge "ART: Refactor test 911"
Treehugger Robot [Fri, 13 Jan 2017 16:52:52 +0000 (16:52 +0000)]
Merge "ART: Refactor test 911"

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 agoTry really hard for JIT in test 916
Alex Light [Mon, 9 Jan 2017 21:31:06 +0000 (13:31 -0800)]
Try really hard for JIT in test 916

Sometimes we would fail to jit stuff due to high load. This makes us
try even harder to JIT so we won't fail in these scenarios.

Test: mma -j40 test-art-host
Test: stress --cpu 60 &; while ./test/run-test --host 916; do ; done

Change-Id: Ic944582bf021f119b8bc3f135af508ed8a8586c4

7 years agoMerge "Make 129-ThreadGetId more robust."
Nicolas Geoffray [Fri, 13 Jan 2017 16:03:05 +0000 (16:03 +0000)]
Merge "Make 129-ThreadGetId more robust."

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 agoMake 129-ThreadGetId more robust.
Nicolas Geoffray [Fri, 13 Jan 2017 11:29:41 +0000 (11:29 +0000)]
Make 129-ThreadGetId more robust.

Make sure we get the heap task daemon, to avoid a race with the runtime
creating the stack trace, and then updating the peer.

test: 129-ThreadGetId
bug: 28261069
Change-Id: I739ab6cd0180e2be07b7cecac6ad8a905a7c9cd0

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 agoART: Add GetThreadListStackTraces
Andreas Gampe [Fri, 13 Jan 2017 01:40:05 +0000 (17:40 -0800)]
ART: Add GetThreadListStackTraces

Add support for GetThreadListStackTraces. Add a test.

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

7 years agoART: Refactor test 911
Andreas Gampe [Fri, 13 Jan 2017 04:51:02 +0000 (20:51 -0800)]
ART: Refactor test 911

Break out the different test cases. As the stack traces print line
numbers, this will reduce the amount of expected.txt churn when
new tests are added.

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

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 agoMake our jvmti run-tests work with the RI again.
Alex Light [Fri, 13 Jan 2017 00:11:02 +0000 (16:11 -0800)]
Make our jvmti run-tests work with the RI again.

Test: ./test/run-test --host --jvm 914
Change-Id: I4a94e27fc12db4006c3db9b843f7108be17948d6

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"