OSDN Git Service

android-x86/art.git
7 years agoMerge "Revert "Revert Revert "Use interpret-only instead of verify-at-runtime when...
Calin Juravle [Fri, 18 Nov 2016 16:09:11 +0000 (16:09 +0000)]
Merge "Revert "Revert Revert "Use interpret-only instead of verify-at-runtime when testing JIT"""

7 years agoRevert "Revert Revert "Use interpret-only instead of verify-at-runtime when testing...
Calin Juravle [Fri, 18 Nov 2016 16:07:58 +0000 (16:07 +0000)]
Revert "Revert Revert "Use interpret-only instead of verify-at-runtime when testing JIT""

test-art-host-run-test-debug-prebuild-jit-relocate-ntrace-gcstress-checkjni-picimage-npictest-ndebuggable-974-verify-interface-super64 fails on the build servers.

It's unclear if it's because of this CL but revert again to check if it fixes the problem.

Locally everything is green...
This reverts commit 0b64a5195b38773084ff94618ac22284bc855b92.

Change-Id: I4668b8d8f8c9672fd942a693d98a20113fbb6b9e

7 years agoMerge "Add dequickening support."
Nicolas Geoffray [Fri, 18 Nov 2016 13:14:10 +0000 (13:14 +0000)]
Merge "Add dequickening support."

7 years agoMerge "ARM: VIXL32: Fix PackedSwitch."
Nicolas Geoffray [Fri, 18 Nov 2016 12:54:00 +0000 (12:54 +0000)]
Merge "ARM: VIXL32: Fix PackedSwitch."

7 years agoMerge "Fix valgrind issue with thread_pool_test."
Nicolas Geoffray [Fri, 18 Nov 2016 12:02:15 +0000 (12:02 +0000)]
Merge "Fix valgrind issue with thread_pool_test."

7 years agoMerge "Revert Revert "Use interpret-only instead of verify-at-runtime when testing...
Calin Juravle [Fri, 18 Nov 2016 12:01:36 +0000 (12:01 +0000)]
Merge "Revert Revert "Use interpret-only instead of verify-at-runtime when testing JIT""

7 years agoMerge "Make ImageWriter and PatchOat helper classes nested."
Treehugger Robot [Fri, 18 Nov 2016 11:24:20 +0000 (11:24 +0000)]
Merge "Make ImageWriter and PatchOat helper classes nested."

7 years agoAdd dequickening support.
Nicolas Geoffray [Thu, 17 Nov 2016 10:58:36 +0000 (10:58 +0000)]
Add dequickening support.

Both vdex and BCI require full dequickening support. This
change implements dequickening by using the existing encoded
quickening, and adds the checkcast quickening to that encoding.

bug: 30937355
bug: 32369913
Test: dex_to_dex_decompiler_test.cc test-art-host

Change-Id: Ie95f46946d59b28157d6e47dcf4a859be032d1c3

7 years agoFix valgrind issue with thread_pool_test.
Nicolas Geoffray [Fri, 18 Nov 2016 10:12:51 +0000 (10:12 +0000)]
Fix valgrind issue with thread_pool_test.

Make sure the task list is empty at the end of the test.

Test: thread_pool_test

Change-Id: I155a8eb90dc83a0dd9128f0c0bc64deeba7a92e9

7 years agoMerge "ART: Make libopenjdkjvmti a run-test dependency"
Treehugger Robot [Fri, 18 Nov 2016 08:29:12 +0000 (08:29 +0000)]
Merge "ART: Make libopenjdkjvmti a run-test dependency"

7 years agoART: Make libopenjdkjvmti a run-test dependency
Andreas Gampe [Fri, 18 Nov 2016 06:50:33 +0000 (22:50 -0800)]
ART: Make libopenjdkjvmti a run-test dependency

Add libopenjdkjvmti as a host dependency for running tests, as
required by the tests 900-913.

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

7 years agoMerge "Fix false positive stack ASan errors on x86."
Treehugger Robot [Fri, 18 Nov 2016 04:02:56 +0000 (04:02 +0000)]
Merge "Fix false positive stack ASan errors on x86."

7 years agoMerge "ART: Remove ti library dependency for ti tests"
Treehugger Robot [Fri, 18 Nov 2016 03:21:03 +0000 (03:21 +0000)]
Merge "ART: Remove ti library dependency for ti tests"

7 years agoFix false positive stack ASan errors on x86.
Evgenii Stepanov [Fri, 18 Nov 2016 01:57:25 +0000 (17:57 -0800)]
Fix false positive stack ASan errors on x86.

Call a special ASan function in x86 DoLongJump to let the tool know
that strange things are going to happen with the stack pointer. Other
architectures do not need this because they do the stack pointer
manipulation in a separate ((noreturn)) function, and noreturn
attribute triggers the same conservative behaviour in ASan.

Bug: 24199050
Bug: 32849425
Test: SANITIZE_HOST=address stub_test32
Change-Id: Ic639d2d84474d875487e66369c034db9907a7e8f

7 years agoART: Remove ti library dependency for ti tests
Andreas Gampe [Fri, 18 Nov 2016 01:13:53 +0000 (17:13 -0800)]
ART: Remove ti library dependency for ti tests

The agent so should not depend on libopenjdkjvmti.so.

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

7 years agoMerge "ART: Rewrite test 913 printing"
Treehugger Robot [Thu, 17 Nov 2016 23:17:31 +0000 (23:17 +0000)]
Merge "ART: Rewrite test 913 printing"

7 years agoMerge "Change offline profile to store type_idx of classes."
Jeff Hao [Thu, 17 Nov 2016 21:31:00 +0000 (21:31 +0000)]
Merge "Change offline profile to store type_idx of classes."

7 years agoMerge changes I710ca0ed,I576e7926,Id0144b68
Treehugger Robot [Thu, 17 Nov 2016 20:59:11 +0000 (20:59 +0000)]
Merge changes I710ca0ed,I576e7926,Id0144b68

* changes:
  ART: Stop JIT in 913-heaps
  ART: Add ScopedJitSuspend
  ART: Change ThreadPool::Wait behavior

7 years agoART: Rewrite test 913 printing
Andreas Gampe [Thu, 17 Nov 2016 19:23:35 +0000 (11:23 -0800)]
ART: Rewrite test 913 printing

Detailed printing has to be postponed, as many required functions
are not callback-safe. Refactor the printing logic.

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

7 years agoChange offline profile to store type_idx of classes.
Jeff Hao [Wed, 16 Nov 2016 23:15:04 +0000 (15:15 -0800)]
Change offline profile to store type_idx of classes.

Changed from storing class_def_idx to type_idx. Allows dexlayout to move
class defs without affecting the profile.

Test: mm test-art-host

Change-Id: I8a040adf0f5f47a1592e18aeb55edde01cb3e1ed

7 years agoMerge "[MIPS64] JNI Compiler: compiler independent test"
Treehugger Robot [Thu, 17 Nov 2016 17:30:43 +0000 (17:30 +0000)]
Merge "[MIPS64] JNI Compiler: compiler independent test"

7 years agoMake ImageWriter and PatchOat helper classes nested.
Vladimir Marko [Thu, 17 Nov 2016 16:38:59 +0000 (16:38 +0000)]
Make ImageWriter and PatchOat helper classes nested.

Nested classes are better for encapsulation. For example,
we've had an art::FixupRootVisitor in both image_writer.cc
and patchoat.cc and we didn't get an ODR violation only
because these two files are never used in the same process.

Test: Rely on the TreeHugger.
Change-Id: I39a86994923a9c0faa5f05d8c9ede982ce9c0c4c

7 years agoART: Stop JIT in 913-heaps
Andreas Gampe [Wed, 16 Nov 2016 18:58:11 +0000 (10:58 -0800)]
ART: Stop JIT in 913-heaps

To avoid any JIT interaction, stop the JIT thread pool in
test 913-heaps.

Bug: 31385354
Test: m ART_TEST_JIT=true test-art-host-run-test-913-heaps
Change-Id: I710ca0ed3736b5394863aa76aff9ea2ae7d50cb1

7 years agoART: Add ScopedJitSuspend
Andreas Gampe [Wed, 16 Nov 2016 22:58:24 +0000 (14:58 -0800)]
ART: Add ScopedJitSuspend

Add a helper to suspend the JIT in a scope. This will
wait for the JIT to quiesce, finishing already running
compile jobs. Note that the queue will not be drained,
jobs not picked up by the pool, yet, will remain in
the queue.

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

7 years agoART: Change ThreadPool::Wait behavior
Andreas Gampe [Wed, 16 Nov 2016 21:58:05 +0000 (13:58 -0800)]
ART: Change ThreadPool::Wait behavior

When a pool is in the stopped state, Wait() will not wait for all
tasks to complete.

Bug: 31385354
Test: m test-art-host-gtest-thread_pool_test
Change-Id: Id0144b685ee2fddf1a1c2c2ca334251130121033

7 years agoARM: VIXL32: Fix PackedSwitch.
Artem Serov [Fri, 11 Nov 2016 16:15:11 +0000 (16:15 +0000)]
ARM: VIXL32: Fix PackedSwitch.

Fix the case when the jumptable is very far and offset doesn't
fit ADR offset field.

Test: export ART_USE_VIXL_ARM_BACKEND=true && \
      mma test-art-host dist && mma test-art-target dist

Change-Id: I2b8ac04eb343947f9a9301f3ce6285794ddad4b8

7 years agoMerge "Revert "jni: Punt to generic JNI for mips""
Treehugger Robot [Thu, 17 Nov 2016 15:57:53 +0000 (15:57 +0000)]
Merge "Revert "jni: Punt to generic JNI for mips""

7 years agoMerge "jni: Add @CriticalNative support for MIPS32/MIPS64"
Treehugger Robot [Thu, 17 Nov 2016 15:57:53 +0000 (15:57 +0000)]
Merge "jni: Add @CriticalNative support for MIPS32/MIPS64"

7 years agoMerge "MIPS32: Assign missing entrypoints in InitEntryPoints"
Treehugger Robot [Thu, 17 Nov 2016 15:57:48 +0000 (15:57 +0000)]
Merge "MIPS32: Assign missing entrypoints in InitEntryPoints"

7 years agoRevert Revert "Use interpret-only instead of verify-at-runtime when testing JIT"
Calin Juravle [Thu, 17 Nov 2016 15:19:21 +0000 (15:19 +0000)]
Revert Revert "Use interpret-only instead of verify-at-runtime when testing JIT"

This reverts commit f1d926592ca7030ad12abc75f2b56643a9e23645.

Change-Id: I161f2e0381a31cad8b014d7384eac2e776ae5411

7 years agoMerge "Add const-class benchmark."
Vladimir Marko [Thu, 17 Nov 2016 14:24:45 +0000 (14:24 +0000)]
Merge "Add const-class benchmark."

7 years agoAdd const-class benchmark.
Vladimir Marko [Wed, 16 Nov 2016 15:40:12 +0000 (15:40 +0000)]
Add const-class benchmark.

Also fix indentation in const-string benchmark.

Test: vogar --benchmark art/benchmark/const-class/src/ConstClassBenchmark.java
Test: vogar --benchmark art/benchmark/const-string/src/ConstStringBenchmark.java
Bug: 30627598
Change-Id: I04ca9514f6e647640e2c0d9d65fdc4ace652927a

7 years ago[MIPS64] JNI Compiler: compiler independent test
Pavle Batuta [Wed, 16 Mar 2016 10:31:46 +0000 (11:31 +0100)]
[MIPS64] JNI Compiler: compiler independent test

Fixed MIPS64 stackArgsSignExtendedTest that did not work properly
when code was built with clang. The the test is now written in an
asm stub and should be completely compiler indepedent.

Test: mma test-art-target-gtest-jni_compiler_test

Change-Id: Idefef3a8414dd8b88a28d2d8862a724bc72402a7

7 years agoMerge "MethodHandles: Check return types when resolving handles."
Orion Hodson [Thu, 17 Nov 2016 10:26:45 +0000 (10:26 +0000)]
Merge "MethodHandles: Check return types when resolving handles."

7 years agoMerge "ARM: VIXL32: Arch specific operations."
Nicolas Geoffray [Thu, 17 Nov 2016 09:39:23 +0000 (09:39 +0000)]
Merge "ARM: VIXL32: Arch specific operations."

7 years agoMerge "Address comments from aog/303658."
Hiroshi Yamauchi [Thu, 17 Nov 2016 00:36:44 +0000 (00:36 +0000)]
Merge "Address comments from aog/303658."

7 years agoMerge "Ensure CC GC is used for the read barrier config."
Treehugger Robot [Wed, 16 Nov 2016 22:39:44 +0000 (22:39 +0000)]
Merge "Ensure CC GC is used for the read barrier config."

7 years agoMerge "Change iftable to never be null"
Mathieu Chartier [Wed, 16 Nov 2016 21:40:34 +0000 (21:40 +0000)]
Merge "Change iftable to never be null"

7 years agoAddress comments from aog/303658.
Hiroshi Yamauchi [Wed, 16 Nov 2016 21:30:17 +0000 (13:30 -0800)]
Address comments from aog/303658.

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

7 years agoEnsure CC GC is used for the read barrier config.
Hiroshi Yamauchi [Tue, 15 Nov 2016 01:35:12 +0000 (17:35 -0800)]
Ensure CC GC is used for the read barrier config.

To prevent the -Xgc option from causing unsupported GC types to run.

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

7 years agoChange iftable to never be null
Mathieu Chartier [Tue, 15 Nov 2016 23:51:31 +0000 (15:51 -0800)]
Change iftable to never be null

Simplifies code generation by removing a null check. The null case
is rare.

Ritzperf code size: 13107624 -> 13095336

Also addressed comments from previous CL.

Bug: 32577579

Test: test-art-host, run ritzperf both with CC

Change-Id: I2b31e800867112869d7f0643e16c08826296979e

7 years agoARM: VIXL32: Arch specific operations.
Artem Serov [Fri, 21 Oct 2016 10:51:50 +0000 (11:51 +0100)]
ARM: VIXL32: Arch specific operations.

Tests which now start to pass:
  550-checker-multiply-accumulate
  564-checker-negbitwise

Test: export ART_USE_VIXL_ARM_BACKEND=true && \
      mma test-art-host dist && mma test-art-target dist

Change-Id: I0b057486a8e0e48afbc52dd18b61ea16c671bec2

7 years agoMerge "A few more tests for LICM."
Aart Bik [Wed, 16 Nov 2016 18:04:54 +0000 (18:04 +0000)]
Merge "A few more tests for LICM."

7 years agoA few more tests for LICM.
Aart Bik [Wed, 9 Nov 2016 23:30:03 +0000 (15:30 -0800)]
A few more tests for LICM.

Rationale:
These tests ensure that some possible improvements in LICM
(e.g. hoisting add in environment out of the loops) will
be done right in the future.

Test: test-art-host

Change-Id: Ic00775ccf03408273d427ee9399df55b091c9fa4

7 years agoMethodHandles: Check return types when resolving handles.
Orion Hodson [Wed, 16 Nov 2016 13:43:26 +0000 (13:43 +0000)]
MethodHandles: Check return types when resolving handles.

Test: m test-art-host-run-test-956-methodhandles
Bug: 30550796
Change-Id: Idff2a3649d812b2901794594661327154299cc05

7 years agoMerge "ARM: VIXL32: Fix VisitTypeConversion."
Nicolas Geoffray [Wed, 16 Nov 2016 11:25:40 +0000 (11:25 +0000)]
Merge "ARM: VIXL32: Fix VisitTypeConversion."

7 years agoMerge "Use OUT_DIR_COMMON_BASE if OUT_DIR is unset."
Nicolas Geoffray [Wed, 16 Nov 2016 11:05:40 +0000 (11:05 +0000)]
Merge "Use OUT_DIR_COMMON_BASE if OUT_DIR is unset."

7 years agoMerge "ART: Prioritize reference table dump"
Treehugger Robot [Tue, 15 Nov 2016 23:13:00 +0000 (23:13 +0000)]
Merge "ART: Prioritize reference table dump"

7 years agoMerge "ART: Print debug info in test 913"
Treehugger Robot [Tue, 15 Nov 2016 22:14:44 +0000 (22:14 +0000)]
Merge "ART: Print debug info in test 913"

7 years agoMerge "Pass object instead of class to instanceof entrypoint"
Mathieu Chartier [Tue, 15 Nov 2016 21:14:54 +0000 (21:14 +0000)]
Merge "Pass object instead of class to instanceof entrypoint"

7 years agoPass object instead of class to instanceof entrypoint
Mathieu Chartier [Mon, 14 Nov 2016 22:38:53 +0000 (14:38 -0800)]
Pass object instead of class to instanceof entrypoint

Reduces code size. Also avoid read barrier for kArrayCheck case.

Bug: 32577579

Test: test-art-host, test-art-target CC

Change-Id: Ia890f656fe166b2d39c522b63a8a6469404134ae

7 years agoART: Print debug info in test 913
Andreas Gampe [Tue, 15 Nov 2016 20:33:18 +0000 (12:33 -0800)]
ART: Print debug info in test 913

In case we find an unexpected thread root, dump all stacks.

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

7 years agoMerge "Add option to force all code to be deoptimizable"
Treehugger Robot [Tue, 15 Nov 2016 18:41:38 +0000 (18:41 +0000)]
Merge "Add option to force all code to be deoptimizable"

7 years agoMerge "ART: Name dex2oat main thread "dex2oat""
Treehugger Robot [Tue, 15 Nov 2016 17:18:22 +0000 (17:18 +0000)]
Merge "ART: Name dex2oat main thread "dex2oat""

7 years agoAdd option to force all code to be deoptimizable
Alex Light [Fri, 11 Nov 2016 19:21:04 +0000 (11:21 -0800)]
Add option to force all code to be deoptimizable

Currently this can only be passed during runtime startup. We will add
support for doing it from the zygote in the future.

Bug: 28769520
Bug: 32369913

Test: m test-art-host

Change-Id: I5eb16887ea14b140217c123b3effd47c5c8b2768

7 years agoMerge "Fix use of std::stoi without error handling."
Jeff Hao [Tue, 15 Nov 2016 02:35:38 +0000 (02:35 +0000)]
Merge "Fix use of std::stoi without error handling."

7 years agoART: Prioritize reference table dump
Andreas Gampe [Tue, 15 Nov 2016 01:00:28 +0000 (17:00 -0800)]
ART: Prioritize reference table dump

Sort the reference table summary dump by highest count, prioritizing
repeated types and instances. This will help with triaging leaks.

Add a test.

Bug: 32857749
Test: m test-art-host-gtest-reference_table_test
Change-Id: I7e61881b5badf9ac2b6b72333f31437ab498caee

7 years agoMerge "Optimize non-intrinsic object array copy for Baker."
Treehugger Robot [Mon, 14 Nov 2016 23:44:49 +0000 (23:44 +0000)]
Merge "Optimize non-intrinsic object array copy for Baker."

7 years agoFix use of std::stoi without error handling.
Jeff Hao [Mon, 14 Nov 2016 23:31:06 +0000 (15:31 -0800)]
Fix use of std::stoi without error handling.

Changed to use strtoul, with a break if it fails to read the checksum.

Test: mm test-art-host
Bug: 32066687
Change-Id: Ic1299c23aae15a8329ad57b4eca5c0857f6eefb6

7 years agoMerge "Change 64 bit atomic counter to size_t"
Mathieu Chartier [Mon, 14 Nov 2016 23:08:34 +0000 (23:08 +0000)]
Merge "Change 64 bit atomic counter to size_t"

7 years agoOptimize non-intrinsic object array copy for Baker.
Hiroshi Yamauchi [Mon, 14 Nov 2016 21:42:50 +0000 (13:42 -0800)]
Optimize non-intrinsic object array copy for Baker.

Check the gray bit per array rather than per element.

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

7 years agoMerge "Clean up interface check cast"
Mathieu Chartier [Mon, 14 Nov 2016 20:49:27 +0000 (20:49 +0000)]
Merge "Clean up interface check cast"

7 years agoClean up interface check cast
Mathieu Chartier [Mon, 14 Nov 2016 18:50:29 +0000 (10:50 -0800)]
Clean up interface check cast

Changed arm, arm64 to use less labels and removed forward branch
in the success case.

Cleaned up X86, X86_64 to remove the is_null label.

Bug: 12687968
Bug: 32577579

Test: test-art-host, test-art-target CC
Change-Id: Iba426dff548b2ef42198fad13efeb075f7c724a7

7 years agoART: Name dex2oat main thread "dex2oat"
Andreas Gampe [Mon, 14 Nov 2016 18:11:16 +0000 (10:11 -0800)]
ART: Name dex2oat main thread "dex2oat"

For better representation in tools like top and ps.

Test: m
Change-Id: Ia93271a850d5b0dfa79d09ea4f6b02b5230727d0

7 years agoMerge "ART: Make test 030 slightly more robust"
Treehugger Robot [Mon, 14 Nov 2016 18:18:12 +0000 (18:18 +0000)]
Merge "ART: Make test 030 slightly more robust"

7 years agoARM: VIXL32: Fix VisitTypeConversion.
Scott Wakeling [Fri, 28 Oct 2016 15:11:08 +0000 (16:11 +0100)]
ARM: VIXL32: Fix VisitTypeConversion.

Pass 422-type-conversion and some other tests.

Test: export ART_USE_VIXL_ARM_BACKEND=true && \
      mma test-art-host dist && mma test-art-target dist

Change-Id: I89a491a7724ae5286b717133eec16433b7066845

7 years agoMerge "Revert "Revert "Revert "JIT root tables.""""
Nicolas Geoffray [Mon, 14 Nov 2016 12:41:12 +0000 (12:41 +0000)]
Merge "Revert "Revert "Revert "JIT root tables.""""

7 years agoRevert "Revert "Revert "JIT root tables."""
Nicolas Geoffray [Mon, 14 Nov 2016 12:40:52 +0000 (12:40 +0000)]
Revert "Revert "Revert "JIT root tables."""

libcore failures:
dalvikvm32 F 11-14 03:04:06 14870 14870 jit_code_cache.cc:310] Check failed: new_string != nullptr

This reverts commit 75afcdd3503a8a8518e5b23d21b6e73306ce39ce.

Change-Id: I5a6b6b48aa79a763d1ff1ba4d85d63811254787d

7 years agoMerge "Update test expectation."
Nicolas Geoffray [Mon, 14 Nov 2016 12:38:11 +0000 (12:38 +0000)]
Merge "Update test expectation."

7 years agoUpdate test expectation.
Nicolas Geoffray [Mon, 14 Nov 2016 12:36:55 +0000 (12:36 +0000)]
Update test expectation.

test: 902
Change-Id: I0d9082a34a66c5f2aadec90eda0c5c2a0feef2e4

7 years agoMerge "Revert "Revert "Rename vdex-fd to output-vdex-fd, add input-vdex-fd."""
Nicolas Geoffray [Mon, 14 Nov 2016 09:24:56 +0000 (09:24 +0000)]
Merge "Revert "Revert "Rename vdex-fd to output-vdex-fd, add input-vdex-fd."""

7 years agoMerge "Revert "Revert "JIT root tables."""
Nicolas Geoffray [Mon, 14 Nov 2016 09:13:46 +0000 (09:13 +0000)]
Merge "Revert "Revert "JIT root tables."""

7 years agoMerge "Update 902 test to highlight JIT issue."
Nicolas Geoffray [Mon, 14 Nov 2016 09:12:59 +0000 (09:12 +0000)]
Merge "Update 902 test to highlight JIT issue."

7 years agoUpdate 902 test to highlight JIT issue.
Nicolas Geoffray [Fri, 11 Nov 2016 11:45:59 +0000 (11:45 +0000)]
Update 902 test to highlight JIT issue.

Test: 902-hello-transformation
bug: 32821077
Change-Id: Ic7d267a5e62d4e001d1b85f1cc3d10546814bd18

7 years agoMerge "ARM: VIXL32: Implement more codegen visitors."
Nicolas Geoffray [Sat, 12 Nov 2016 13:58:17 +0000 (13:58 +0000)]
Merge "ARM: VIXL32: Implement more codegen visitors."

7 years agoMerge "Add visiting for class loaders in StickyMarkSweep"
Treehugger Robot [Sat, 12 Nov 2016 06:48:17 +0000 (06:48 +0000)]
Merge "Add visiting for class loaders in StickyMarkSweep"

7 years agoUse OUT_DIR_COMMON_BASE if OUT_DIR is unset.
Fredrik Roubert [Sat, 12 Nov 2016 03:28:18 +0000 (19:28 -0800)]
Use OUT_DIR_COMMON_BASE if OUT_DIR is unset.

In build/make/core/envsetup.mk the logic for setting OUT_DIR is this:

ifeq (,$(strip $(OUT_DIR)))
ifeq (,$(strip $(OUT_DIR_COMMON_BASE)))
OUT_DIR := $(TOPDIR)out
else
OUT_DIR := $(OUT_DIR_COMMON_BASE)/$(notdir $(PWD))
endif
endif

To get the correct value for its out_dir variable, buildbot-build.sh
needs to do the same, otherwise it'll generate incorrect target names
in environments where OUT_DIR_COMMON_BASE is set but OUT_DIR unset.

Test: art/tools/buildbot-build.sh --host

Change-Id: I558949655a97b47ce3c560ed70310c9768e1da5c

7 years agoMerge "ART: Fix alloc-dealloc mismatch"
Treehugger Robot [Sat, 12 Nov 2016 02:59:32 +0000 (02:59 +0000)]
Merge "ART: Fix alloc-dealloc mismatch"

7 years agoART: Fix alloc-dealloc mismatch
Andreas Gampe [Sat, 12 Nov 2016 01:11:25 +0000 (17:11 -0800)]
ART: Fix alloc-dealloc mismatch

Mark type as array.

Bug: 31098551
Test: m test-art-host
Change-Id: Ia27a997e838a408cc68f0d9fe58734155e709e85

7 years agoAdd visiting for class loaders in StickyMarkSweep
neo.chae [Mon, 7 Nov 2016 23:40:46 +0000 (08:40 +0900)]
Add visiting for class loaders in StickyMarkSweep

StickyMarkSweep clear the mark stack,
Because all reachable objects must be referenced by a root or a dirty card.
But, there are some marking hole for class object.

If some object is marked and the object and it's class object is not dirty,
Then class object cannot be marking by card table.

In previous OS including mashmellow,
Class table was maintaned by class linker
and all class object was marked with kVisitRootFlagAllRoots flag.

In N OS,
Class object is not marked with kVisitRootFlagAllRoots.
So, I added new flag to mark class object and using it StickyMarkSweep.

Added regression test in 141-class-unload.

Test: test-art-host

Change-Id: I57599e6db53b260f4c5ef466b63962141b8da5c3
Signed-off-by: Hyangseok Chae <neo.chae@lge.com>
7 years agoMerge "Fixed bug in LICM"
Treehugger Robot [Fri, 11 Nov 2016 19:18:23 +0000 (19:18 +0000)]
Merge "Fixed bug in LICM"

7 years agoMerge "Make empty checkpoint work while weak ref access is disabled."
Hiroshi Yamauchi [Fri, 11 Nov 2016 18:44:44 +0000 (18:44 +0000)]
Merge "Make empty checkpoint work while weak ref access is disabled."

7 years agoFixed bug in LICM
Aart Bik [Fri, 11 Nov 2016 02:21:30 +0000 (18:21 -0800)]
Fixed bug in LICM

Rationale:
We should stop hoisting anything that can throw
as soon as something else that can do something
visible (either throw or write something) is *not*
hoisted (used to be just throw test on second part).

Bug: 32810295
Test: test-art-host
Change-Id: Id88b712a5d9e37598d0bebbd4ecf4b1d8ee787b5

7 years agoMerge "ART: Properly synchronize test 039"
Treehugger Robot [Fri, 11 Nov 2016 17:27:01 +0000 (17:27 +0000)]
Merge "ART: Properly synchronize test 039"

7 years agoMerge "ART: Expose vreg and visitor in RootInfo"
Treehugger Robot [Fri, 11 Nov 2016 17:26:04 +0000 (17:26 +0000)]
Merge "ART: Expose vreg and visitor in RootInfo"

7 years agoMerge "ART: Rewrite test 913 verification"
Treehugger Robot [Fri, 11 Nov 2016 17:24:24 +0000 (17:24 +0000)]
Merge "ART: Rewrite test 913 verification"

7 years agoMerge "MethodHandles: Fix MethodType::IsConvertible() error."
Orion Hodson [Fri, 11 Nov 2016 15:01:52 +0000 (15:01 +0000)]
Merge "MethodHandles: Fix MethodType::IsConvertible() error."

7 years agoMethodHandles: Fix MethodType::IsConvertible() error.
Orion Hodson [Fri, 11 Nov 2016 12:03:29 +0000 (12:03 +0000)]
MethodHandles: Fix MethodType::IsConvertible() error.

Conversions between non-numeric primitives and their boxed equivalents
were being rejected.

Test: m test-art-host-run-test-956-methodhandles
Bug: 30550796
Change-Id: I4ee255be3a4549246548185e362789561382ba1b

7 years agoRevert "Revert "JIT root tables.""
Nicolas Geoffray [Thu, 10 Nov 2016 10:38:11 +0000 (10:38 +0000)]
Revert "Revert "JIT root tables.""

Also  contains Revert "Support kJitTableAddress in x86/arm/arm64."

This reverts commit 4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035.
This reverts commit 997d1217830c0a18b70faeabd53c04700a87d7d9.

Test: ART_USE_READ_BARRIER=true/false test-art-host test-art-target

Change-Id: I77cb1e9bf8f1b4c58b72d3cf5ca31ced2aaa1ea3

7 years agoMerge "Dump c1visualizer output before and after each pass."
Nicolas Geoffray [Fri, 11 Nov 2016 11:57:21 +0000 (11:57 +0000)]
Merge "Dump c1visualizer output before and after each pass."

7 years agoMerge "ARM: VIXL32: Implement InstanceOf, InvokeInterface and others."
Nicolas Geoffray [Fri, 11 Nov 2016 11:49:11 +0000 (11:49 +0000)]
Merge "ARM: VIXL32: Implement InstanceOf, InvokeInterface and others."

7 years agoMerge "MethodHandles: Enable return value conversions."
Orion Hodson [Fri, 11 Nov 2016 10:16:24 +0000 (10:16 +0000)]
Merge "MethodHandles: Enable return value conversions."

7 years agoMerge "Fix mips build"
Mathieu Chartier [Fri, 11 Nov 2016 01:55:22 +0000 (01:55 +0000)]
Merge "Fix mips build"

7 years agoFix mips build
Mathieu Chartier [Fri, 11 Nov 2016 01:52:42 +0000 (17:52 -0800)]
Fix mips build

Test: untested
Change-Id: Ied193834bf2a187b0cb8ffdbdece72023698b1f6

7 years agoMerge "Use entrypoint switching to reduce code size of GcRoot read barrier"
Mathieu Chartier [Fri, 11 Nov 2016 00:58:22 +0000 (00:58 +0000)]
Merge "Use entrypoint switching to reduce code size of GcRoot read barrier"

7 years agoART: Rewrite test 913 verification
Andreas Gampe [Thu, 10 Nov 2016 06:54:25 +0000 (22:54 -0800)]
ART: Rewrite test 913 verification

Make the test more robust wrt/ the liberty the specification
gives for iteration order. Also make it robust wrt/ JIT by
waiting for any compilation to finish before following
references.

This reverts commit a35c584d7eb0ae02c9511f5f891b284362b12e28.
This reverts commit 8c433b9e45a26e3bde123a5b2697ca801ae8b039.

Test: m ART_TEST_INTERPRETER=true ART_TEST_JIT=true test-art-host-run-test-913-heaps
Change-Id: Ia94c597f4f7b66ab1014efb483b3aed2e859099a

7 years agoUse entrypoint switching to reduce code size of GcRoot read barrier
Mathieu Chartier [Wed, 9 Nov 2016 22:32:49 +0000 (14:32 -0800)]
Use entrypoint switching to reduce code size of GcRoot read barrier

Set the read barrier mark register entrypoints to null when the GC
is not marking. The compiler uses this to avoid needing to load the
is_gc_marking boolean.

Code size results on ritzperf CC:
arm32: 13439400 -> 13242792 (-1.5%)
arm64: 16380544 -> 16208512 (-1.05%)

Implemented for arm32 and arm64. TODO: Consider implementing on x86.

Bug: 32638713
Bug: 29516974

Test: test-art-host + run ritzperf
Change-Id: I527ca5dc4cd43950ba43b872d0ac81e1eb5791eb

7 years agoMerge "Use enum for read barrier options in compiler"
Mathieu Chartier [Thu, 10 Nov 2016 22:34:40 +0000 (22:34 +0000)]
Merge "Use enum for read barrier options in compiler"

7 years agoART: Make test 030 slightly more robust
Andreas Gampe [Thu, 10 Nov 2016 22:09:05 +0000 (14:09 -0800)]
ART: Make test 030 slightly more robust

Run a serious of immediate GCs, synchronizer with the finalizer
starintg  and then let the main thread sleep for a minute, in an
effort to make the test deterministic and get the finalizer
daemon scheduled.

Test: m test-art-host-run-test-030-bad-finalizer
Change-Id: Id379d8147ecc8f6aa0a7d8d5058030a4c2d4de46

7 years agoART: Properly synchronize test 039
Andreas Gampe [Thu, 10 Nov 2016 21:40:32 +0000 (13:40 -0800)]
ART: Properly synchronize test 039

Properly synchronize the test so that the output is deterministic.

Test: m test-art-host-run-test-039-join-main
Change-Id: Ia2212c7f77c3bf016d588014b22fa5abaef076e3