OSDN Git Service

android-x86/art.git
7 years agoMerge "ART: Blacklist tests that require JIT"
Andreas Gampe [Thu, 15 Dec 2016 03:46:26 +0000 (03:46 +0000)]
Merge "ART: Blacklist tests that require JIT"

7 years agoMerge "Revert "Basic obsolete methods support""
Alex Light [Thu, 15 Dec 2016 01:04:03 +0000 (01:04 +0000)]
Merge "Revert "Basic obsolete methods support""

7 years agoRevert "Basic obsolete methods support"
Alex Light [Thu, 15 Dec 2016 00:59:05 +0000 (00:59 +0000)]
Revert "Basic obsolete methods support"

This reverts commit d8936da27b792d1ca02e59c92456a1a53c7b9905.

Reason for revert: Some sort of race in JIT

Change-Id: Ibb4e520bb0721d6d7aa2c841a52eb5baff07740e

7 years agoMerge "Rename Reference.clear to Reference.clearReferent"
Mathieu Chartier [Wed, 14 Dec 2016 23:47:39 +0000 (23:47 +0000)]
Merge "Rename Reference.clear to Reference.clearReferent"

7 years agoMerge "ART: Add GetLineNumberTable"
Treehugger Robot [Wed, 14 Dec 2016 22:49:08 +0000 (22:49 +0000)]
Merge "ART: Add GetLineNumberTable"

7 years agoRename Reference.clear to Reference.clearReferent
Mathieu Chartier [Wed, 14 Dec 2016 22:12:17 +0000 (14:12 -0800)]
Rename Reference.clear to Reference.clearReferent

Renamed on java side.

Test: test-art-host ART_TEST_INTERPRETER=true ART_TEST_READ_BARRIER=true

Change-Id: I57fc1f46c8c3c2b6d35741ab8549020894de7026

7 years agoMerge "Basic obsolete methods support"
Alex Light [Wed, 14 Dec 2016 22:21:27 +0000 (22:21 +0000)]
Merge "Basic obsolete methods support"

7 years agoART: Blacklist tests that require JIT
Andreas Gampe [Wed, 14 Dec 2016 21:09:14 +0000 (13:09 -0800)]
ART: Blacklist tests that require JIT

Blacklist tests that expect JITing when running in the trace
configuration. Tracing forces the interpreter, so these tests
will wait forever.

Test: m ART_TEST_JIT=true ART_TEST_TRACE=true test-art-host
Change-Id: I830cc8ebac024a9489850b49c1ec242b7d3fd528

7 years agoMerge "Don't call into ResolveType with possible exception"
Mathieu Chartier [Wed, 14 Dec 2016 21:04:24 +0000 (21:04 +0000)]
Merge "Don't call into ResolveType with possible exception"

7 years agoBasic obsolete methods support
Alex Light [Tue, 29 Nov 2016 00:24:32 +0000 (16:24 -0800)]
Basic obsolete methods support

Add support for executing obsolete methods following redefinitions.
This support includes methods that have been jitted. This does not add
any additional validity checks to our redefinition functions.

Note using work-arounds to ensure 916 works pending some fixes to the
compiler, deoptimizer, or both.

Test: ./test/run-test --host 914
Test: ./test/run-test --host 915
Test: ./test/run-test --host 916
Test: mma -j40 test-art-host
Test: ART_TEST_JIT=true \
      ART_TEST_INTERPRETER=true mma -j40 test-art-host
Test: ./art/tools/run-jdwp-tests.sh --mode=host --variant=X64
Test: ./art/tools/run-jdwp-tests.sh --mode=host --variant=X64 --no-jit

Bug: 32369913
Bug: 33630159

Change-Id: I78ef95f484146f1fb93c37fc50f56575bdab2432

7 years agoDon't call into ResolveType with possible exception
Mathieu Chartier [Tue, 6 Dec 2016 21:21:38 +0000 (13:21 -0800)]
Don't call into ResolveType with possible exception

Bug: 33307169

Test: test-art-host

Change-Id: Ic4d499d772828ba1da7a1b9acfc2026f0fcec2b2

7 years agoMerge "Don't visit proxy methods in CHAStackVisitor::VisitFrame"
Mathieu Chartier [Wed, 14 Dec 2016 18:57:56 +0000 (18:57 +0000)]
Merge "Don't visit proxy methods in CHAStackVisitor::VisitFrame"

7 years agoMerge "Remove boolean arguments from NewLibrary()"
Treehugger Robot [Wed, 14 Dec 2016 18:32:21 +0000 (18:32 +0000)]
Merge "Remove boolean arguments from NewLibrary()"

7 years agoMerge "Add exclusion for Reference.clear and reference processing"
Mathieu Chartier [Wed, 14 Dec 2016 17:30:23 +0000 (17:30 +0000)]
Merge "Add exclusion for Reference.clear and reference processing"

7 years agoMerge "Don't re-read referent in ReferenceProcessor::GetReferent"
Mathieu Chartier [Wed, 14 Dec 2016 17:30:07 +0000 (17:30 +0000)]
Merge "Don't re-read referent in ReferenceProcessor::GetReferent"

7 years agoMerge "Fix AssemblerMIPS64Test.LongBalc() running out of memory."
Treehugger Robot [Wed, 14 Dec 2016 15:48:29 +0000 (15:48 +0000)]
Merge "Fix AssemblerMIPS64Test.LongBalc() running out of memory."

7 years agoFix AssemblerMIPS64Test.LongBalc() running out of memory.
Vladimir Marko [Wed, 14 Dec 2016 14:18:22 +0000 (14:18 +0000)]
Fix AssemblerMIPS64Test.LongBalc() running out of memory.

Pre-allocate the necessary buffer because the reallocation
strategy doesn't work well for a test of this size.

Test: m test-art-host-gtest-assembler_mips64_test
Change-Id: I16bc75f0ae83a62e5f3ed2cd8228dd40f0eb9524

7 years agoMerge "ARM: Fix breaking changes from recent VIXL update."
Nicolas Geoffray [Wed, 14 Dec 2016 13:43:48 +0000 (13:43 +0000)]
Merge "ARM: Fix breaking changes from recent VIXL update."

7 years agoMerge "Implement VisitShouldDeoptimizeFlag for MIPS/MIPS64"
Treehugger Robot [Wed, 14 Dec 2016 12:00:51 +0000 (12:00 +0000)]
Merge "Implement VisitShouldDeoptimizeFlag for MIPS/MIPS64"

7 years agoMerge "MIPS64: Improve method invocation."
Treehugger Robot [Wed, 14 Dec 2016 11:45:32 +0000 (11:45 +0000)]
Merge "MIPS64: Improve method invocation."

7 years agoImplement VisitShouldDeoptimizeFlag for MIPS/MIPS64
Goran Jakovljevic [Mon, 5 Dec 2016 15:31:55 +0000 (16:31 +0100)]
Implement VisitShouldDeoptimizeFlag for MIPS/MIPS64

This is follow-up change for I18bf716a601b6413b46312e925a6ad9e4008efa4.

Test: mma ART_TEST_JIT=true test-art-target-run-test-jit on CI20 and QEMU

Change-Id: I750814ae740a4549f1a2af11be7ae4318ae26a2f

7 years agoMerge "Support GVN for HLoadClass::LoadKind::kJitTableAddress."
Nicolas Geoffray [Wed, 14 Dec 2016 09:21:59 +0000 (09:21 +0000)]
Merge "Support GVN for HLoadClass::LoadKind::kJitTableAddress."

7 years agoMerge "Handle primitive types in VerifierTypes::AddAssignability."
Nicolas Geoffray [Wed, 14 Dec 2016 09:15:05 +0000 (09:15 +0000)]
Merge "Handle primitive types in VerifierTypes::AddAssignability."

7 years agoART: Add GetLineNumberTable
Andreas Gampe [Wed, 14 Dec 2016 03:00:53 +0000 (19:00 -0800)]
ART: Add GetLineNumberTable

Add support for extracting a line number table. Add output to
stack trace test.

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

7 years agoMerge "ART: Make switch back-edge suspension point consistent"
Treehugger Robot [Wed, 14 Dec 2016 00:54:45 +0000 (00:54 +0000)]
Merge "ART: Make switch back-edge suspension point consistent"

7 years agoAdd exclusion for Reference.clear and reference processing
Mathieu Chartier [Tue, 13 Dec 2016 22:44:33 +0000 (14:44 -0800)]
Add exclusion for Reference.clear and reference processing

Prevents race conditions like unclearing cleared references or
calling IsMarkedHeapReference on null references.

Bug: 33389022

Test: test-art-host

Change-Id: Iee83b76d84453e929172f1a83f284aa4910e126c

7 years agoART: Make switch back-edge suspension point consistent
Andreas Gampe [Tue, 13 Dec 2016 22:43:58 +0000 (14:43 -0800)]
ART: Make switch back-edge suspension point consistent

Both compiled code and mterp attribute a back-edge suspend point
to the target. Make switch consistent by proactively updating
the frame's dex PC in that case.

Add another macro for reuse.

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

7 years agoSupport GVN for HLoadClass::LoadKind::kJitTableAddress.
Nicolas Geoffray [Tue, 13 Dec 2016 13:43:31 +0000 (13:43 +0000)]
Support GVN for HLoadClass::LoadKind::kJitTableAddress.

Fixes performance regressions seen in eg Dhrystone.

Also add comment on why a class may not be found when sharpening.

Test: manual Dhrystone run, performance recovers
Test: ART_TEST_JIT=true test-art-host-run-test-jit
Change-Id: I8e879f1c390f83e8bc930f343beb7b4a41c2f190

7 years agoMIPS64: Improve method invocation.
Alexey Frunze [Thu, 1 Dec 2016 03:19:55 +0000 (19:19 -0800)]
MIPS64: Improve method invocation.

Improvements include:
- support for all kinds of method loads and static/direct calls
- 32-bit and 64-bit literals for the above and future work
- shorter instruction sequences for recursive static/direct calls
Also:
- include the MIPS64 dinsu instruction (missed earlier) and minor
  clean-up in the disassembler
- properly prefix constant names with 'k' in relative patcher tests

Test: test-art-host-gtest
Test: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU
Test: "make -j1 ART_TEST_DEFAULT_COMPILER=false ART_TEST_OPTIMIZING=true
       ART_TEST_INTERPRETER=false ART_TEST_JIT=false
       ART_TEST_PIC_TEST=true test-art-target-run-test64"

Change-Id: I19876fa5316b68531af7dfddfce90d2068433116

7 years agoMerge "ART: Clean up utils.h"
Treehugger Robot [Tue, 13 Dec 2016 21:54:10 +0000 (21:54 +0000)]
Merge "ART: Clean up utils.h"

7 years agoRemove boolean arguments from NewLibrary()
Colin Cross [Fri, 9 Dec 2016 22:47:29 +0000 (14:47 -0800)]
Remove boolean arguments from NewLibrary()

NewLibrary is going to be used for header only libraries.  Instead
of adding more boolean arguments, replace the existing ones with
BuildOnlyStatic and BuildOnlyShared calls on the libraryDecorator
returned by NewLibrary.

Test: m -j, compare build.ninja
Change-Id: I832627938f3fbc8cc1565c695048a5b5c3553090

7 years agoDon't visit proxy methods in CHAStackVisitor::VisitFrame
Mingyao Yang [Tue, 13 Dec 2016 20:28:31 +0000 (12:28 -0800)]
Don't visit proxy methods in CHAStackVisitor::VisitFrame

Proxy methods do not have an OatQuickMethodHeader.

Test: test-art-host, launch com.azarlive.android

Bug: 33471784
Change-Id: Idb660c78a8263501d068d8467476b0477d910393

7 years agoDon't re-read referent in ReferenceProcessor::GetReferent
Mathieu Chartier [Tue, 13 Dec 2016 19:46:28 +0000 (11:46 -0800)]
Don't re-read referent in ReferenceProcessor::GetReferent

Re-reading has the issue that it may read a null value after already
having done the null check. Using a cached value prevents this from
happening and causing DCHECK failures.

Added a related stress test.

Bug: 33569625
Bug: 33389022

Test: test-art-host

Change-Id: Ic42d540e035d41ac6e5b01762f9510cd6632b28c

7 years agoMerge changes Iac3db17f,I4221ef81
Treehugger Robot [Tue, 13 Dec 2016 20:11:26 +0000 (20:11 +0000)]
Merge changes Iac3db17f,I4221ef81

* changes:
  ART: Fix stack trace location reporting
  ART: Rewrite test 911 stack trace reporting

7 years agoMerge "Address some review comments"
Mathieu Chartier [Tue, 13 Dec 2016 19:55:45 +0000 (19:55 +0000)]
Merge "Address some review comments"

7 years agoART: Clean up utils.h
Andreas Gampe [Mon, 12 Dec 2016 22:28:21 +0000 (14:28 -0800)]
ART: Clean up utils.h

Remove functionality provided by libbase. Move some single-use
functions to their respective users.

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

7 years agoMerge "Prune uses library classes even without profile"
Mathieu Chartier [Tue, 13 Dec 2016 19:24:35 +0000 (19:24 +0000)]
Merge "Prune uses library classes even without profile"

7 years agoAddress some review comments
Mathieu Chartier [Mon, 12 Dec 2016 19:06:59 +0000 (11:06 -0800)]
Address some review comments

Addressed comments in dex cache and class table. Added class table
test.

Test: mm test-art-host-gtest-class_table_test -j20

Change-Id: I3ec0282247187acb1ec7af25b309501f001a1c3e

7 years agoMerge "Fix CC DCHECK failure in 152-gc-and-run-finalization."
Hiroshi Yamauchi [Tue, 13 Dec 2016 17:55:33 +0000 (17:55 +0000)]
Merge "Fix CC DCHECK failure in 152-gc-and-run-finalization."

7 years agoMerge "Remove obsolete DeduplicateDexCacheAddressLiteral()."
Vladimir Marko [Tue, 13 Dec 2016 15:37:09 +0000 (15:37 +0000)]
Merge "Remove obsolete DeduplicateDexCacheAddressLiteral()."

7 years agoHandle primitive types in VerifierTypes::AddAssignability.
Nicolas Geoffray [Mon, 12 Dec 2016 13:07:07 +0000 (13:07 +0000)]
Handle primitive types in VerifierTypes::AddAssignability.

The dex2dex compiler might indirectly call it with arrays
of primitives.

Also remove dead APUT_OBJECT optimization in VerifiedMethod.
It was added for optimizing Quick:
https://googleplex-android-review.googlesource.com/#/c/371193

Commit hash:
a9a8254c920ce8e22210abfc16c9842ce0aea28f

But Quick is gone.

Test: 630-safecast-array
bug: 334987503254680732546608

Change-Id: Icfd3f8d915bfe225f05dbec42f9ba25dc1243fdc

7 years agoMerge "ARM: VIXL32: Test both current and new assemblers with optimizing_cfi_test."
Nicolas Geoffray [Tue, 13 Dec 2016 13:57:39 +0000 (13:57 +0000)]
Merge "ARM: VIXL32: Test both current and new assemblers with optimizing_cfi_test."

7 years agoRemove obsolete DeduplicateDexCacheAddressLiteral().
Vladimir Marko [Tue, 13 Dec 2016 13:50:14 +0000 (13:50 +0000)]
Remove obsolete DeduplicateDexCacheAddressLiteral().

Test: Rely on TreeHugger
Bug: 30627598
Change-Id: Ia3c7a1d528f62b730d7ac1cc7b67f21d9ff06c9e

7 years agoMerge "Disable 626-const-class-linking for JIT."
Vladimir Marko [Tue, 13 Dec 2016 12:36:49 +0000 (12:36 +0000)]
Merge "Disable 626-const-class-linking for JIT."

7 years agoMerge "Fix string compression for embedded zero chars."
Treehugger Robot [Tue, 13 Dec 2016 12:04:20 +0000 (12:04 +0000)]
Merge "Fix string compression for embedded zero chars."

7 years agoARM: Fix breaking changes from recent VIXL update.
Artem Serov [Tue, 6 Dec 2016 18:13:40 +0000 (18:13 +0000)]
ARM: Fix breaking changes from recent VIXL update.

Test: m test-art-host
Test: m test-art-target
Change-Id: I5c0c38fcd935e97fc94721f645e51251c7a87d39

7 years agoDisable 626-const-class-linking for JIT.
Vladimir Marko [Tue, 13 Dec 2016 10:37:07 +0000 (10:37 +0000)]
Disable 626-const-class-linking for JIT.

Test: m ART_TEST_JIT=true test-art-host; test skipped.
Bug: 33567581
Change-Id: Ib530a27b14d918bc8a24f85473c8705f023280b0

7 years agoFix string compression for embedded zero chars.
Vladimir Marko [Fri, 9 Dec 2016 14:01:02 +0000 (14:01 +0000)]
Fix string compression for embedded zero chars.

Treat embedded zero character as non-ASCII.

Test: m test-art-host
Test: m test-art-host with string compression enabled.
Bug: 31040547
Change-Id: Iea6e92f89d424953814953ba27f1c7a991589c65

7 years agoMerge "Revert "Revert "Add kJitTableAddress for HLoadClass."""
Nicolas Geoffray [Tue, 13 Dec 2016 09:34:11 +0000 (09:34 +0000)]
Merge "Revert "Revert "Add kJitTableAddress for HLoadClass."""

7 years agoART: Fix stack trace location reporting
Andreas Gampe [Tue, 13 Dec 2016 03:37:19 +0000 (19:37 -0800)]
ART: Fix stack trace location reporting

The frame info contains the location, not the line number. Add
location to output.

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

7 years agoART: Rewrite test 911 stack trace reporting
Andreas Gampe [Tue, 13 Dec 2016 02:49:33 +0000 (18:49 -0800)]
ART: Rewrite test 911 stack trace reporting

Return an array of arrays, which is easier to extend and doesn't
have the tight coupling of a collapsed array.

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

7 years agoMerge "ART: Add missing space in log line"
Treehugger Robot [Mon, 12 Dec 2016 23:31:26 +0000 (23:31 +0000)]
Merge "ART: Add missing space in log line"

7 years agoRevert "Revert "Add kJitTableAddress for HLoadClass.""
Nicolas Geoffray [Mon, 12 Dec 2016 22:33:36 +0000 (22:33 +0000)]
Revert "Revert "Add kJitTableAddress for HLoadClass.""

This reverts commit d2d5262c8370309e1f2a009f00aafc24f1cf00a0.

Change-Id: I6149d5c7d5df0b0fc5cb646a802a2eea8d01ac08

7 years agoPrune uses library classes even without profile
Mathieu Chartier [Fri, 5 Aug 2016 23:09:09 +0000 (16:09 -0700)]
Prune uses library classes even without profile

The previous pruning relied on the classes being pruned from the
profile, and then using the profile to prune classes. If there was
no profile, the uses library classes were incorrectly left unpruned.

Leaving these classes unpruned caused aborts during compilation.

Bug: 30688277

Test: adb shell dex2oat --runtime-arg -classpath --runtime-arg /system/framework/com.google.android.maps.jar --dex-file=/data/app/comb.BBClient-1/base.apk --dex-location=/data/app/comb.BBClient-1/base.apk --oat-file=/data/app/comb.BBClient-1/oat/arm/base.odex  --app-image-file=/data/app/comb.BBClient-1/oat/arm/base.art --image-format=lz4 --compiler-filter=speed

Change-Id: I261b8894847b5b0a4f7330f49666e823a1b38bb0

7 years agoART: Add missing space in log line
Andreas Gampe [Mon, 12 Dec 2016 21:49:00 +0000 (13:49 -0800)]
ART: Add missing space in log line

Follow-up to commit c560fc0b430816825add4125134b20eb791f6036.

Test: m
Change-Id: Ie558b2984ec629706d2122eca9dd96b8c3497298

7 years agoMerge changes Ieb86f678,I8e7280f0
Treehugger Robot [Mon, 12 Dec 2016 21:38:28 +0000 (21:38 +0000)]
Merge changes Ieb86f678,I8e7280f0

* changes:
  ART: Stack locals
  ART: Add precise root visiting

7 years agoMerge "Disable test 964 with no-image"
Alex Light [Mon, 12 Dec 2016 21:33:25 +0000 (21:33 +0000)]
Merge "Disable test 964 with no-image"

7 years agoMerge "ART: Report cputime in dex2oat"
Treehugger Robot [Mon, 12 Dec 2016 21:29:20 +0000 (21:29 +0000)]
Merge "ART: Report cputime in dex2oat"

7 years agoART: Stack locals
Andreas Gampe [Fri, 2 Dec 2016 22:42:33 +0000 (14:42 -0800)]
ART: Stack locals

Add reporting of stack-locals roots. Use the new
precise root visiting to get dalvik register
information for compiled frames.

Bug: 31385354
Test: m test-art-host-run-test-913-heaps
Change-Id: Ieb86f67829e546692c30faa08eb44e8dcf2b2c6a

7 years agoART: Add precise root visiting
Andreas Gampe [Fri, 2 Dec 2016 22:52:29 +0000 (14:52 -0800)]
ART: Add precise root visiting

Add VisitRootFlags::kVisitRootFlagPrecise to signal a
request for precise RootInfo objects.

Move VisitRootFlags to gc_root.h. Refactor VisitRoot
functions to pass flags. Add code in Thread visiting
to decode vregs in compiled code.

Bug: 31385354
Test: m test-art-host
Change-Id: I8e7280f0ab682871f729f2a1c6b18670cf2dbf82

7 years agoART: Report cputime in dex2oat
Andreas Gampe [Wed, 16 Jul 2014 16:57:39 +0000 (09:57 -0700)]
ART: Report cputime in dex2oat

Add ProcessCpuNanoTime. Log cputime in dex2oat completion message.

Sample:

 dex2oat took 20.036s(64.843s cpu) (threads: 48) arena alloc=25MB (26760672B) java alloc=2MB (2311688B) native alloc=44MB (46792784B) free=35MB (37502896B)

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

7 years agoMerge "ART: Implement FollowReferences for initial object"
Treehugger Robot [Mon, 12 Dec 2016 19:16:43 +0000 (19:16 +0000)]
Merge "ART: Implement FollowReferences for initial object"

7 years agoDisable test 964 with no-image
Alex Light [Mon, 12 Dec 2016 18:39:50 +0000 (10:39 -0800)]
Disable test 964 with no-image

It often times out due to the large number of classes involved in the
test. Since it doesn't test anything particularly interesting for the
no-image case we are disabling it to reduce flakiness.

Test: TEST_ART_RUN_TEST_NO_IMAGE=true mma -j40 test-art-host
Change-Id: I9e51481e52dd1eb332d7563795f490b0e97001a5

7 years agoMerge "Use store release for resolved types"
Mathieu Chartier [Mon, 12 Dec 2016 18:32:57 +0000 (18:32 +0000)]
Merge "Use store release for resolved types"

7 years agoMerge "Revert "Add kJitTableAddress for HLoadClass.""
Nicolas Geoffray [Mon, 12 Dec 2016 16:29:18 +0000 (16:29 +0000)]
Merge "Revert "Add kJitTableAddress for HLoadClass.""

7 years agoRevert "Add kJitTableAddress for HLoadClass."
Nicolas Geoffray [Mon, 12 Dec 2016 16:28:54 +0000 (16:28 +0000)]
Revert "Add kJitTableAddress for HLoadClass."

One test failure after merge.

This reverts commit 5b12f7973636bfea29da3956a9baa7a6bbe2b666.

Change-Id: I120c49e53274471fc1c82a10d52e99c83f5f85cc

7 years agoMerge "Add kJitTableAddress for HLoadClass."
Nicolas Geoffray [Mon, 12 Dec 2016 15:26:10 +0000 (15:26 +0000)]
Merge "Add kJitTableAddress for HLoadClass."

7 years agoARM: VIXL32: Test both current and new assemblers with optimizing_cfi_test.
Scott Wakeling [Thu, 8 Dec 2016 10:25:03 +0000 (10:25 +0000)]
ARM: VIXL32: Test both current and new assemblers with optimizing_cfi_test.

Test: m test-art-host

Change-Id: I71b97113d9bc3ad5abe5f5f89a0d94c243c8f2e2

7 years agoAdd kJitTableAddress for HLoadClass.
Nicolas Geoffray [Fri, 9 Dec 2016 11:26:35 +0000 (11:26 +0000)]
Add kJitTableAddress for HLoadClass.

This new kind loads classes from the root table associated with
JIT compiled code.

Also remove kDexCacheAddress, which is replaced by kJitTableAddress.

test: ART_TEST_JIT=true test-art-host-jit test-art-target-jit
Change-Id: Ia23029688d1a60c178bf2ffa7463927c5d5de4d0

7 years agoMerge "Revert "Revert "ARM: VIXL32: Use DontCare for SetFlags + fix for GenerateFrame...
Nicolas Geoffray [Mon, 12 Dec 2016 10:30:24 +0000 (10:30 +0000)]
Merge "Revert "Revert "ARM: VIXL32: Use DontCare for SetFlags + fix for GenerateFrameEntry."""

7 years agoMerge "Revert^8 "Make sure that const-class linkage is preserved.""
Vladimir Marko [Mon, 12 Dec 2016 10:29:49 +0000 (10:29 +0000)]
Merge "Revert^8 "Make sure that const-class linkage is preserved.""

7 years agoMerge "Use System.out only."
Nicolas Geoffray [Mon, 12 Dec 2016 10:17:56 +0000 (10:17 +0000)]
Merge "Use System.out only."

7 years agoUse System.out only.
Nicolas Geoffray [Sun, 11 Dec 2016 22:05:15 +0000 (22:05 +0000)]
Use System.out only.

Otherwise streams can get interleaved when printing.

test: 956-methodhandles
Change-Id: Ie734e24ed5bb73786e1972df784b365176bfd593

7 years agoART: Implement FollowReferences for initial object
Andreas Gampe [Sat, 3 Dec 2016 03:11:17 +0000 (19:11 -0800)]
ART: Implement FollowReferences for initial object

Add code for FollowReferences with initial object. Simply skip
root visiting and add the initial object to the work list.

Bug: 31385354
Test: m test-art-host-run-test-913-heaps
Change-Id: I7d2a852fac54b13219df975d131f5b95e8094d9b

7 years agoUse store release for resolved types
Mathieu Chartier [Wed, 7 Dec 2016 00:02:27 +0000 (16:02 -0800)]
Use store release for resolved types

For DefineClass, use a release store for SetResolvedType. This is
done to prevent other threads from seeing a class but not necessarily
seeing the loaded members like the static fields array.

It is theorized that a load acquire is not required since obtaining
the resolved class will always have an address depedency or a lock.

Bug: 32075261

Test: test-art-host

Change-Id: I8ab18edc2cc7c9eb4a30897903d5cf1c7f9eb24e

7 years agoMerge "Added polynomial induction variables analysis. With tests."
Treehugger Robot [Fri, 9 Dec 2016 21:48:43 +0000 (21:48 +0000)]
Merge "Added polynomial induction variables analysis. With tests."

7 years agoAdded polynomial induction variables analysis. With tests.
Aart Bik [Tue, 6 Dec 2016 18:05:30 +0000 (10:05 -0800)]
Added polynomial induction variables analysis. With tests.

Rationale:
Information on polynomial sequences is nice to further enhance
BCE and last-value assignment. In this case, this CL enables more
loop optimizations for benchpress' Sum (80 x speedup). Also
changed rem-based geometric induction to wrap-around induction.

Test: test-art-host

Change-Id: Ie4d2659edefb814edda2c971c1f70ba400c31111

7 years agoMerge "Clean up Class::GetDirectInterface()."
Vladimir Marko [Fri, 9 Dec 2016 15:36:53 +0000 (15:36 +0000)]
Merge "Clean up Class::GetDirectInterface()."

7 years agoClean up Class::GetDirectInterface().
Vladimir Marko [Thu, 8 Dec 2016 14:41:46 +0000 (14:41 +0000)]
Clean up Class::GetDirectInterface().

Once the `klass` has been resolved, this function should not
need to resolve interface types anymore. Drop the type
resolution from this function and pass the Class as ObjPtr<>
instead of Handle<>. Make callers that expect non-null
result DCHECK() that assumption. For the callers that may
actually need to resolve these interface classes, introduce
a new function ResolveDirectInterface().

Also improve ObjPtr<> constructors and assignment operator
to improve overload resolution. For example, if we have
foo(ObjPtr<T1>) and foo(ObjPtr<T2>), calling foo(.) with
a T1* would have previously been ambiguous even if T1 is
not a base of T2.

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

7 years agoRevert^8 "Make sure that const-class linkage is preserved."
Vladimir Marko [Fri, 9 Dec 2016 10:20:54 +0000 (10:20 +0000)]
Revert^8 "Make sure that const-class linkage is preserved."

Replaced two ReaderMutexLocks with WriterMutexLocks.
Removed some unnecessary debugging output.

Test: m test-art-host
Bug: 30627598
Original-Change-Id: Ie9b721464b4e9a5dcce8df8095548e983bba1fe8

This reverts commit 2c8c6b63da6ecb2ac701cc30f9b4fa4a8eea5cc8.

Change-Id: I3a1aeecf64e4b202cef61cceb248d48106a2f4a6

7 years agoMerge "ARM: VIXL32: Implement read barriers."
Nicolas Geoffray [Fri, 9 Dec 2016 11:23:42 +0000 (11:23 +0000)]
Merge "ARM: VIXL32: Implement read barriers."

7 years agoMerge "Revert "ART: Remove workaround in verifer after Jack update.""
Orion Hodson [Thu, 8 Dec 2016 14:26:09 +0000 (14:26 +0000)]
Merge "Revert "ART: Remove workaround in verifer after Jack update.""

7 years agoRevert "ART: Remove workaround in verifer after Jack update."
Orion Hodson [Thu, 8 Dec 2016 14:15:25 +0000 (14:15 +0000)]
Revert "ART: Remove workaround in verifer after Jack update."

This reverts commit 1aab04df52529d3cabe28fd9f0cb008bf8180a56.

Change-Id: Ifecad6a16f2c6dfeea99adcdca7da05fb71592a8

7 years agoMerge "Add libstdc++ as a dependency for build-target-art-golem."
Nicolas Geoffray [Thu, 8 Dec 2016 14:11:10 +0000 (14:11 +0000)]
Merge "Add libstdc++ as a dependency for build-target-art-golem."

7 years agoAdd libstdc++ as a dependency for build-target-art-golem.
Nicolas Geoffray [Thu, 8 Dec 2016 13:49:54 +0000 (13:49 +0000)]
Add libstdc++ as a dependency for build-target-art-golem.

Needed for running with ART_TARGET_LINUX=true

Test: builds and runs.
Change-Id: Idf74eff0a4114952b71781ed80de5bbe75f666ae

7 years agoMerge "ART: Remove workaround in verifer after Jack update."
Orion Hodson [Thu, 8 Dec 2016 12:49:46 +0000 (12:49 +0000)]
Merge "ART: Remove workaround in verifer after Jack update."

7 years agoART: Remove workaround in verifer after Jack update.
Orion Hodson [Thu, 8 Dec 2016 10:29:53 +0000 (10:29 +0000)]
ART: Remove workaround in verifer after Jack update.

Bug: 33099829,30550796
Test: m test-art-host
Change-Id: I812809e7f043ec2a9651f22e970312e094b78966

7 years agoFix CC DCHECK failure in 152-gc-and-run-finalization.
Hiroshi Yamauchi [Wed, 7 Dec 2016 00:46:37 +0000 (16:46 -0800)]
Fix CC DCHECK failure in 152-gc-and-run-finalization.

This fixes the second crash trace in 33389022#1.

Load the referent once which avoids passing nullptr to IsMarked().

It's still racey but it's okay because leaving a Reference with a
cleared referent gray is fine, if not optimal performance-wise.

Bug: 33389022
Bug: 12687968
Test: test-art-host with CC. 152 in a loop.

Change-Id: I2b389022175e38bdc40518b9553a2f5180dbc649

7 years agoRevert "Revert "ARM: VIXL32: Use DontCare for SetFlags + fix for GenerateFrameEntry.""
Scott Wakeling [Wed, 7 Dec 2016 17:46:03 +0000 (17:46 +0000)]
Revert "Revert "ARM: VIXL32: Use DontCare for SetFlags + fix for GenerateFrameEntry.""

Override Add in ArmVIXLMacroAssembler to improve 16-bit encodings.

This reverts commit 2f34995469e20a1ac342975856155f69995997ce.

Test: m test-art-host

Change-Id: Ief9f7576cd805104fd517a76b96d8a92f2208dfd

7 years agoMerge "JDWP tests need debug info"
Treehugger Robot [Wed, 7 Dec 2016 17:18:16 +0000 (17:18 +0000)]
Merge "JDWP tests need debug info"

7 years agoMerge "MIPS32: Pass more arguments in registers."
Vladimir Marko [Wed, 7 Dec 2016 17:15:08 +0000 (17:15 +0000)]
Merge "MIPS32: Pass more arguments in registers."

7 years agoMerge "Revert "ARM: VIXL32: Use DontCare for SetFlags + fix for GenerateFrameEntry.""
Nicolas Geoffray [Wed, 7 Dec 2016 16:21:24 +0000 (16:21 +0000)]
Merge "Revert "ARM: VIXL32: Use DontCare for SetFlags + fix for GenerateFrameEntry.""

7 years agoRevert "ARM: VIXL32: Use DontCare for SetFlags + fix for GenerateFrameEntry."
Nicolas Geoffray [Wed, 7 Dec 2016 16:20:47 +0000 (16:20 +0000)]
Revert "ARM: VIXL32: Use DontCare for SetFlags + fix for GenerateFrameEntry."

Breaks assembler_thumb_test.

This reverts commit d494c5e37c656d92fcf83987d886e999457d9252.

Change-Id: I0ccac4c7bf391185b860767bd26d48189bfae461

7 years agoMerge "Mterp/arm: Add CFI directives, add missing change"
Bill Buzbee [Wed, 7 Dec 2016 16:19:41 +0000 (16:19 +0000)]
Merge "Mterp/arm: Add CFI directives, add missing change"

7 years agoJDWP tests need debug info
Yohann Roussel [Wed, 7 Dec 2016 15:41:07 +0000 (16:41 +0100)]
JDWP tests need debug info

Test: art/tools/run-jdwp-tests.sh --mode=host --variant=X32
Change-Id: I4b575978a4005b3b09862c12cd98f1c5436122ce

7 years agoMerge "ARM: VIXL32: Use DontCare for SetFlags + fix for GenerateFrameEntry."
Nicolas Geoffray [Wed, 7 Dec 2016 15:17:12 +0000 (15:17 +0000)]
Merge "ARM: VIXL32: Use DontCare for SetFlags + fix for GenerateFrameEntry."

7 years agoMerge remote-tracking branch 'goog/stage-aosp-master' into HEAD
Bill Yi [Tue, 6 Dec 2016 22:30:01 +0000 (14:30 -0800)]
Merge remote-tracking branch 'goog/stage-aosp-master' into HEAD

7 years agoMerge "Reduce calls to DescriptorEquals"
Mathieu Chartier [Tue, 6 Dec 2016 22:06:05 +0000 (22:06 +0000)]
Merge "Reduce calls to DescriptorEquals"

7 years agoMIPS32: Pass more arguments in registers.
Alexey Frunze [Sun, 13 Nov 2016 01:22:05 +0000 (17:22 -0800)]
MIPS32: Pass more arguments in registers.

Specifically, use A0-A3,T0-T1 for non-floats and F8-F19 for floats.

Test: booted MIPS32R2 in QEMU
Test: test-art-target-run-test-optimizing (MIPS32R2) on CI20
Test: test-art-target-gtest (MIPS32R2) on CI20
Test: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU
Test: test-art-target-run-test-optimizing (MIPS32R6) in QEMU
Test: test-art-target-gtest (MIPS32R6) in QEMU
Test: test-art-host-gtest

Change-Id: Ib8b0310a109d9f3d70119c1e605e54b013e60728

7 years agoMerge "Use getReferent() in enqueueSentinelReference to avoid race with GC."
Hiroshi Yamauchi [Tue, 6 Dec 2016 20:09:07 +0000 (20:09 +0000)]
Merge "Use getReferent() in enqueueSentinelReference to avoid race with GC."
am: d12f04cb56

Change-Id: I45197211253ba6308695f3bcbf339b118cfed299