OSDN Git Service

android-x86/art.git
7 years agoMerge "Create test for field access in obsolete methods."
Alex Light [Tue, 20 Dec 2016 18:55:10 +0000 (18:55 +0000)]
Merge "Create test for field access in obsolete methods."
am: bd1ec61522

Change-Id: I0c071547bd5070d88e1e91d6796365366617a012

7 years agoMerge "Create test for field access in obsolete methods."
Alex Light [Tue, 20 Dec 2016 18:45:54 +0000 (18:45 +0000)]
Merge "Create test for field access in obsolete methods."

7 years agoMerge changes Ie74f2dbe,I092d2e95,I5a75f5c4
Calin Juravle [Tue, 20 Dec 2016 18:42:30 +0000 (18:42 +0000)]
Merge changes Ie74f2dbe,I092d2e95,I5a75f5c4
am: 07001c8540

Change-Id: I7152ae8d2689fd2995d4c9c5443ff62a59734754

7 years agoFix 616-cha assumptions.
Calin Juravle [Tue, 20 Dec 2016 18:42:28 +0000 (18:42 +0000)]
Fix 616-cha assumptions.
am: 6cb21552c9

Change-Id: If520e0315882f5d48814d84a584dd89634cc3f22

7 years agoFix JIT crash due to unverified dead code
Calin Juravle [Tue, 20 Dec 2016 18:42:20 +0000 (18:42 +0000)]
Fix JIT crash due to unverified dead code
am: 857f058d4b

Change-Id: I7d8c08c35ac56ab72aaae41663794c7f96b8b485

7 years agoUse interpret-only instead of verify-at-runtime when testing JIT
Calin Juravle [Tue, 20 Dec 2016 18:42:11 +0000 (18:42 +0000)]
Use interpret-only instead of verify-at-runtime when testing JIT
am: 0966558b07

Change-Id: Ib0d76c219a887086626e6384ad19ec6b8c05eb9b

7 years agoMerge changes I8cc87bac,If1a92e47
Alex Light [Tue, 20 Dec 2016 18:41:38 +0000 (18:41 +0000)]
Merge changes I8cc87bac,If1a92e47
am: 1aa03b379f

Change-Id: I830f6fb2937d561a5d7762ac35b93ea6e6f72df7

7 years agoCleanup jvmti tests
Alex Light [Tue, 20 Dec 2016 18:41:37 +0000 (18:41 +0000)]
Cleanup jvmti tests
am: ca5b9dccce

Change-Id: I6acbcddf3eb32749d5c7e15bbe7a27d301f830ee

7 years agoRevert "Revert "Basic obsolete methods support""
Alex Light [Tue, 20 Dec 2016 18:41:25 +0000 (18:41 +0000)]
Revert "Revert "Basic obsolete methods support""
am: ce77fc0e7f

Change-Id: I086f8b0b3c23ec64ffb577e9946c477dc5d82794

7 years agoMerge "ARM: VIXL32: Use 16-bit encoding for B(cond,...) where possible."
Nicolas Geoffray [Tue, 20 Dec 2016 18:41:10 +0000 (18:41 +0000)]
Merge "ARM: VIXL32: Use 16-bit encoding for B(cond,...) where possible."
am: 1ffb6fc921

Change-Id: I2c171a03e02067998e8cebc8aedeb6265d6db89d

7 years agoMerge changes Ie74f2dbe,I092d2e95,I5a75f5c4
Treehugger Robot [Tue, 20 Dec 2016 17:49:02 +0000 (17:49 +0000)]
Merge changes Ie74f2dbe,I092d2e95,I5a75f5c4

* changes:
  Fix 616-cha assumptions.
  Fix JIT crash due to unverified dead code
  Use interpret-only instead of verify-at-runtime when testing JIT

7 years agoCreate test for field access in obsolete methods.
Alex Light [Tue, 20 Dec 2016 16:55:35 +0000 (08:55 -0800)]
Create test for field access in obsolete methods.

Test: ./test/run-test --host 918
Change-Id: Idf27a0a713e12876e35de5c24bf5d12984881927

7 years agoMerge changes I8cc87bac,If1a92e47
Alex Light [Tue, 20 Dec 2016 16:42:09 +0000 (16:42 +0000)]
Merge changes I8cc87bac,If1a92e47

* changes:
  Cleanup jvmti tests
  Revert "Revert "Basic obsolete methods support""

7 years agoFix 616-cha assumptions.
Calin Juravle [Mon, 19 Dec 2016 15:38:07 +0000 (15:38 +0000)]
Fix 616-cha assumptions.

616-cha relies that some classes are not loaded at startup. Disable the
app image to prevent that.

Test: ART_TEST_JIT=true m test-art-host-run-test-616-cha
Change-Id: Ie74f2dbeae0f898d42051f248492126615ffdad6

7 years agoFix JIT crash due to unverified dead code
Calin Juravle [Tue, 20 Dec 2016 14:36:59 +0000 (14:36 +0000)]
Fix JIT crash due to unverified dead code

The JIT compiler assumes that it only gets completely verified code. To
work around potential unverified dead code it uses kAccDontBotherCompile
flag set during runtime verification. However, if a class is verified
during a prior dex2oat the flag is not persisted and JIT happily things
that everything is ok.

The simplest fix is to mark classes with potential unverified dex code
as verify at runtime. We only do this for apps and assume that
everything in the boot image is well formed.

Test: m test-art-host
Bug: 31000839
Change-Id: I092d2e9553cd1c577036d78e8563a7a39d6cb7b9

7 years agoUse interpret-only instead of verify-at-runtime when testing JIT
Calin Juravle [Tue, 20 Dec 2016 14:00:48 +0000 (14:00 +0000)]
Use interpret-only instead of verify-at-runtime when testing JIT

That's because we run most of our products with interpret-only and not
verify-at-runtime.

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

7 years agoMerge "ARM: VIXL32: Use 16-bit encoding for B(cond,...) where possible."
Nicolas Geoffray [Tue, 20 Dec 2016 13:52:48 +0000 (13:52 +0000)]
Merge "ARM: VIXL32: Use 16-bit encoding for B(cond,...) where possible."

7 years agoMerge "MIPS64: Improve string and class loads."
Alexey Frunze [Tue, 20 Dec 2016 12:07:45 +0000 (12:07 +0000)]
Merge "MIPS64: Improve string and class loads."
am: 06ce6d4359

Change-Id: I6b35d073cb4088a65dcfe31f5403b1680aa9c53c

7 years agoMerge "MIPS64: Improve string and class loads."
Treehugger Robot [Tue, 20 Dec 2016 12:00:20 +0000 (12:00 +0000)]
Merge "MIPS64: Improve string and class loads."

7 years agoMerge "Sharpen HLoadClass from inliner."
Nicolas Geoffray [Tue, 20 Dec 2016 09:10:52 +0000 (09:10 +0000)]
Merge "Sharpen HLoadClass from inliner."
am: eaaaaef76b

Change-Id: I951c3f54a90a20d39b3e92c53649de64019be5e0

7 years agoMerge "Make 141-class-unload more robust under JIT."
Nicolas Geoffray [Tue, 20 Dec 2016 09:10:35 +0000 (09:10 +0000)]
Merge "Make 141-class-unload more robust under JIT."
am: ee3a0bde75

Change-Id: I4b31b791c4af840123fd1ae98d92de72bb4d1fe3

7 years agoMerge "Sharpen HLoadClass from inliner."
Nicolas Geoffray [Tue, 20 Dec 2016 09:06:17 +0000 (09:06 +0000)]
Merge "Sharpen HLoadClass from inliner."

7 years agoMerge "Make 141-class-unload more robust under JIT."
Nicolas Geoffray [Tue, 20 Dec 2016 09:05:29 +0000 (09:05 +0000)]
Merge "Make 141-class-unload more robust under JIT."

7 years agoMerge "CHA guard optimization (elimination/hoisting)."
Mingyao Yang [Tue, 20 Dec 2016 00:10:33 +0000 (00:10 +0000)]
Merge "CHA guard optimization (elimination/hoisting)."
am: fb5a6bb830

Change-Id: Ic40219b4344e34190c875ecd9e9f86fc484cb1a2

7 years agoCleanup jvmti tests
Alex Light [Wed, 14 Dec 2016 23:29:42 +0000 (15:29 -0800)]
Cleanup jvmti tests

Deduplicate the 'run' scripts into the test/etc/run-test-jar file.

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

7 years agoMerge "CHA guard optimization (elimination/hoisting)."
Mingyao Yang [Tue, 20 Dec 2016 00:02:11 +0000 (00:02 +0000)]
Merge "CHA guard optimization (elimination/hoisting)."

7 years agoMIPS64: Improve string and class loads.
Alexey Frunze [Wed, 14 Dec 2016 01:43:11 +0000 (17:43 -0800)]
MIPS64: Improve string and class loads.

This adds most kinds of string/class loads.
JIT string/class loads are TBD separately.

This also fixes Mips64Assembler::LoadLabelAddress()
(adding a constant to a 64-bit address must be done
using daddiu, not addiu).

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: I1f94ece4cd202382c11167e1ed958e9d08d92822

7 years agoCHA guard optimization (elimination/hoisting).
Mingyao Yang [Thu, 17 Nov 2016 17:04:53 +0000 (09:04 -0800)]
CHA guard optimization (elimination/hoisting).

Test: manual by checking the dump-cfg output.

Change-Id: I254e168b9a85d2d3d23e02eea7e129c1bc9ab920

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

This reverts commit b81a9840b44480bfeacd74b8d9f51e06f295411d.

There were 2 issues with the original CL's test 916-obsolete-jit that
caused it to sporadically fail.

First, when checking if we had jitted the function under test in
916-obsolete-jit we failed to check to see if the function 'doCall',
which is used to work-around bugs in our deoptimization & compilation
systems, had also been jitted.

In the case where the 'sayHi' function had been jitted but the
'doCall' function had not we would (correctly) fail to redefine the
'Transform' class since we would not be able to deoptimize the 'sayHi'
function since it is under a quick_to_interpreter_bridge (runtime)
frame.

Secondly, the function Main.isInterpretedFunction was incorrect and
would always return false, regardless of the actual state of the
function. This would cause the test to fail as the
quick_to_interpreter_bridge frame prevented deoptimization of the
obsoleted function. Usually the warm-up period was enough to make sure
the methods were jitted anyway but this was not guaranteed.

Both of these problems become more likely to occur on systems with
more cpu contention such as the buildbots.

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

Reason for revert: Fixed bug in test that was causing failures.

Original Tests:

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: If1a92e47b90965a7dc21c5826185debe62bd1554

7 years agoMerge "Improved induction var and range analysis around types."
Aart Bik [Mon, 19 Dec 2016 21:46:48 +0000 (21:46 +0000)]
Merge "Improved induction var and range analysis around types."
am: d54f43ca39

Change-Id: I580b92820d94de55bf8478d41ba8a2d5e3ab3832

7 years agoMerge "Improved induction var and range analysis around types."
Aart Bik [Mon, 19 Dec 2016 21:38:57 +0000 (21:38 +0000)]
Merge "Improved induction var and range analysis around types."

7 years agoMerge "Revert "Revert "Revert "Use interpret-only instead of verify-at-runtime when...
Nicolas Geoffray [Mon, 19 Dec 2016 21:20:15 +0000 (21:20 +0000)]
Merge "Revert "Revert "Revert "Use interpret-only instead of verify-at-runtime when testing JIT""""
am: 481593d874

Change-Id: Ie2517bba2c533d5a53113c0da326ca4c24000ff2

7 years agoMerge "Revert "Revert "Revert "Use interpret-only instead of verify-at-runtime when...
Nicolas Geoffray [Mon, 19 Dec 2016 21:12:49 +0000 (21:12 +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...
Nicolas Geoffray [Mon, 19 Dec 2016 21:11:54 +0000 (21:11 +0000)]
Revert "Revert "Revert "Use interpret-only instead of verify-at-runtime when testing JIT"""

Reverting due to gtest crashes.

This reverts commit 3a3e4c10e4d08c9fa1fbeba6d74933964a3bb47f.

Change-Id: I7e1adf0d886a1cdaf3152469b3c11a33131ee498

7 years agoMerge "Revert "Fix 616-cha assumptions.""
Vladimir Marko [Mon, 19 Dec 2016 20:53:14 +0000 (20:53 +0000)]
Merge "Revert "Fix 616-cha assumptions.""
am: 761460ee54

Change-Id: I780638160fd9bb88c219f68052a5c31c03782ab4

7 years agoMerge "Revert "Fix 616-cha assumptions.""
Vladimir Marko [Mon, 19 Dec 2016 20:45:48 +0000 (20:45 +0000)]
Merge "Revert "Fix 616-cha assumptions.""

7 years agoRevert "Fix 616-cha assumptions."
Vladimir Marko [Mon, 19 Dec 2016 20:44:29 +0000 (20:44 +0000)]
Revert "Fix 616-cha assumptions."

The change that this depends on has been reverted:
    https://android-review.googlesource.com/316224

This reverts commit 5c77917ca94b33576b4a6bb850bdb578df378292.

Change-Id: I590dabcc7d12e661536b4234e45b7e763c34c35d

7 years agoMerge "Revert "Fix JIT crash due to unverified dead code""
Vladimir Marko [Mon, 19 Dec 2016 19:50:11 +0000 (19:50 +0000)]
Merge "Revert "Fix JIT crash due to unverified dead code""
am: 263cc99a5f

Change-Id: I7fb96da9847c216a5a8e06b6f8470fc09f01cd0e

7 years agoMerge "Revert "Fix JIT crash due to unverified dead code""
Vladimir Marko [Mon, 19 Dec 2016 19:45:32 +0000 (19:45 +0000)]
Merge "Revert "Fix JIT crash due to unverified dead code""

7 years agoRevert "Fix JIT crash due to unverified dead code"
Vladimir Marko [Mon, 19 Dec 2016 19:31:26 +0000 (19:31 +0000)]
Revert "Fix JIT crash due to unverified dead code"

Broke method_verifier_test and image_test.

Bug: 31000839

This reverts commit 132eb43396bdb0b9bdacf069289f019d85d358fc.

Change-Id: I85923e6bdb3e76f54978658aad816d4c79fc339e

7 years agoMerge "Fix 616-cha assumptions."
Calin Juravle [Mon, 19 Dec 2016 19:00:07 +0000 (19:00 +0000)]
Merge "Fix 616-cha assumptions."
am: 2d76677d7a

Change-Id: I60d4a592defe603c298ff96b2a3f7c0282243b83

7 years agoImproved induction var and range analysis around types.
Aart Bik [Fri, 16 Dec 2016 21:57:52 +0000 (13:57 -0800)]
Improved induction var and range analysis around types.

Rationale:
Lots of code should not depend on int only. This CL generalizes
the kinds of types that can be optimized after analysis. As part
of the CL, however, a minor cleanup regarding type safety of the
stored induction var analysis results is required. This further
improved our int benchmark, and brings the long benchmark up-to-par.

Test: m test-art-host-run-test
Change-Id: I5dfb623dabf9113de90c2f6da99328dda8f8b60b

7 years agoMerge "Fix 616-cha assumptions."
Treehugger Robot [Mon, 19 Dec 2016 18:56:50 +0000 (18:56 +0000)]
Merge "Fix 616-cha assumptions."

7 years agoMerge "Temporarily disable 153-reference-stress."
Hiroshi Yamauchi [Mon, 19 Dec 2016 18:50:08 +0000 (18:50 +0000)]
Merge "Temporarily disable 153-reference-stress."
am: 9b8e6de85f

Change-Id: Id3a5b74c23eafd3f2a19fbf69cacca74cd921d26

7 years agoMerge "Temporarily disable 153-reference-stress."
Hiroshi Yamauchi [Mon, 19 Dec 2016 18:43:26 +0000 (18:43 +0000)]
Merge "Temporarily disable 153-reference-stress."

7 years agoMerge "Fix arena allocation counting."
Vladimir Marko [Mon, 19 Dec 2016 18:39:37 +0000 (18:39 +0000)]
Merge "Fix arena allocation counting."
am: a7ad00aad1

Change-Id: I90d2755e6e12917afc94ef58e46adb0d7fb73b50

7 years agoMerge "Fix arena allocation counting."
Treehugger Robot [Mon, 19 Dec 2016 18:34:16 +0000 (18:34 +0000)]
Merge "Fix arena allocation counting."

7 years agoMerge "Fix JIT crash due to unverified dead code"
Calin Juravle [Mon, 19 Dec 2016 17:18:31 +0000 (17:18 +0000)]
Merge "Fix JIT crash due to unverified dead code"
am: b44553224c

Change-Id: I59641114a6415f01abab3b50d11cc63986f7c7e6

7 years agoFix 616-cha assumptions.
Calin Juravle [Mon, 19 Dec 2016 15:38:07 +0000 (15:38 +0000)]
Fix 616-cha assumptions.

616-cha relies that some classes are not loaded at startup. Disable the
app image to prevent that.

Test: ART_TEST_JIT=true m test-art-host-run-test-616-cha

Change-Id: I432c300a3cf3de7c0f2f9ab02d7576e92edac844

7 years agoMerge "Fix JIT crash due to unverified dead code"
Calin Juravle [Mon, 19 Dec 2016 17:13:46 +0000 (17:13 +0000)]
Merge "Fix JIT crash due to unverified dead code"

7 years agoSharpen HLoadClass from inliner.
Nicolas Geoffray [Fri, 16 Dec 2016 16:09:08 +0000 (16:09 +0000)]
Sharpen HLoadClass from inliner.

Also cleanup HLoadClass constructor.

Test: ART_TEST_JIT=true m test-art-host-run-test

Change-Id: I8f803b05fb8a7267d1421ca9c032e624f27efed3

7 years agoFix arena allocation counting.
Vladimir Marko [Mon, 19 Dec 2016 16:04:33 +0000 (16:04 +0000)]
Fix arena allocation counting.

Add the "CHA" allocation kind description. Move the
statistics to the heap to avoid excessively large frames
triggering errors with -Werror, -Wframe-larger-than=.

Test: m test-art-host
Test: m test-art-host with arena allocation counting.
Change-Id: I7947a3a17b4c1ed773742516b1f7ab9a58c92150

7 years agoFix JIT crash due to unverified dead code
Calin Juravle [Fri, 28 Oct 2016 19:09:56 +0000 (20:09 +0100)]
Fix JIT crash due to unverified dead code

The JIT compiler assumes that it only gets completely verified code. To
work around potential unverified dead code it uses kAccDontBotherCompile
flag set during runtime verification. However, if a class is verified
during a prior dex2oat the flag is not persisted and JIT happily things
that everything is ok.

The simplest fix is to mark classes with potential unverified dex code
as verify at runtime. We only do this for apps and assume that
everything in the boot image is well formed.

Test: m test-art-host-706-jit-skip-compilation
Bug: 31000839

Change-Id: Ib73de1888581bb7202474cfd7aca70af4cc2cc00

7 years agoMerge "Revert "Revert "Use interpret-only instead of verify-at-runtime when testing...
Calin Juravle [Mon, 19 Dec 2016 13:49:18 +0000 (13:49 +0000)]
Merge "Revert "Revert "Use interpret-only instead of verify-at-runtime when testing JIT"""
am: 71464a10a4

Change-Id: I10552f5fba712022ce6a21e5f7b3fbcfe7f71ee0

7 years agoMerge "Revert "Revert "Use interpret-only instead of verify-at-runtime when testing...
Treehugger Robot [Mon, 19 Dec 2016 13:45:14 +0000 (13:45 +0000)]
Merge "Revert "Revert "Use interpret-only instead of verify-at-runtime when testing JIT"""

7 years agoMerge "Don't unquicken RETURN_VOID_NO_BARRIER with vdex."
Nicolas Geoffray [Mon, 19 Dec 2016 13:01:46 +0000 (13:01 +0000)]
Merge "Don't unquicken RETURN_VOID_NO_BARRIER with vdex."
am: c0e74baddb

Change-Id: I977bb2194de2ea070427663d72923646fc4bcea0

7 years agoMerge "Don't unquicken RETURN_VOID_NO_BARRIER with vdex."
Nicolas Geoffray [Mon, 19 Dec 2016 12:58:45 +0000 (12:58 +0000)]
Merge "Don't unquicken RETURN_VOID_NO_BARRIER with vdex."

7 years agoMake 141-class-unload more robust under JIT.
Nicolas Geoffray [Fri, 16 Dec 2016 11:22:05 +0000 (11:22 +0000)]
Make 141-class-unload more robust under JIT.

Make sure jit is stopped before counting maps.

bug: 29712509
test: 141-class-unload
Change-Id: I52c0fed74556fa228cd73c9c0bc6a1d019df0a1c

7 years agoMerge "Add Thread entry to signal if the thread can call into java"
Calin Juravle [Mon, 19 Dec 2016 11:26:41 +0000 (11:26 +0000)]
Merge "Add Thread entry to signal if the thread can call into java"
am: d96b96dd97

Change-Id: I70dd4e0fe4727daf13381a621042e9a55d80c862

7 years agoAdd Thread entry to signal if the thread can call into java
Calin Juravle [Mon, 19 Dec 2016 11:26:40 +0000 (11:26 +0000)]
Add Thread entry to signal if the thread can call into java
am: ccd56958eb

Change-Id: I6b5f99beea90fe4cdd1245a36e984adecc278530

7 years agoMerge "Add Thread entry to signal if the thread can call into java"
Calin Juravle [Mon, 19 Dec 2016 11:22:55 +0000 (11:22 +0000)]
Merge "Add Thread entry to signal if the thread can call into java"

7 years agoMerge "ARM: Fix vixl related branch issue in JNI."
Nicolas Geoffray [Mon, 19 Dec 2016 09:35:20 +0000 (09:35 +0000)]
Merge "ARM: Fix vixl related branch issue in JNI."
am: 685e4a3252

Change-Id: Idb507ed12f2af87b2f00210b3c1becfd9603fe19

7 years agoMerge "ARM: VIXL32: Implement some dispatch optimizations."
Nicolas Geoffray [Mon, 19 Dec 2016 09:35:03 +0000 (09:35 +0000)]
Merge "ARM: VIXL32: Implement some dispatch optimizations."
am: 76873db28c

Change-Id: I8d2ba47fd208c0da2a5ca086a7c72bcacf3733e3

7 years agoMerge "ARM: Fix vixl related branch issue in JNI."
Nicolas Geoffray [Mon, 19 Dec 2016 09:31:18 +0000 (09:31 +0000)]
Merge "ARM: Fix vixl related branch issue in JNI."

7 years agoARM: Fix vixl related branch issue in JNI.
Artem Serov [Thu, 15 Dec 2016 17:56:27 +0000 (17:56 +0000)]
ARM: Fix vixl related branch issue in JNI.

Fix VIXL asserts in EncodeLabelFor in JNI macro assembler when
label is out of range of 16-bit branch (now a veneer is correctly
used).

bug:32545704

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

7 years agoMerge "ARM: VIXL32: Implement some dispatch optimizations."
Nicolas Geoffray [Mon, 19 Dec 2016 09:29:54 +0000 (09:29 +0000)]
Merge "ARM: VIXL32: Implement some dispatch optimizations."

7 years agoDon't unquicken RETURN_VOID_NO_BARRIER with vdex.
Nicolas Geoffray [Fri, 16 Dec 2016 16:23:16 +0000 (16:23 +0000)]
Don't unquicken RETURN_VOID_NO_BARRIER with vdex.

The quickening of the RETURN_VOID instruction is based on
local information (no final fields) that doesn't get affected
by a boot image update.

Test: test-art-host, verifier_deps_test
bug:30937355

Change-Id: I12b22d7fcda6dc681a32ff752c3871f6e84f19a1

7 years agoTemporarily disable 153-reference-stress.
Hiroshi Yamauchi [Fri, 16 Dec 2016 21:09:19 +0000 (13:09 -0800)]
Temporarily disable 153-reference-stress.

This is intermittently failing. See 33389022 #13.

Note this could fail either in CMS or CC, gcstress or not.

Bug: 33389022
Test: test-art-host.
Change-Id: I257c2c771fcab9405c1a15fa6e93364908fd1294

7 years agoAdd Thread entry to signal if the thread can call into java
Calin Juravle [Thu, 15 Dec 2016 17:57:38 +0000 (17:57 +0000)]
Add Thread entry to signal if the thread can call into java

Compiler threads (AOT or JIT) should not call into Java as they have no
peers (which may lead to crashes, e.g. b/33067273)

Bug: 32602185
Bug: 33067273

Test: m test-art-host-run-test; m test-art-host-gtest
Change-Id: I97dda7a5444643db3c5d5318339a65a602f709e8

7 years agoMerge "Allow redefined methods/classes to access fields"
Alex Light [Fri, 16 Dec 2016 19:00:16 +0000 (19:00 +0000)]
Merge "Allow redefined methods/classes to access fields"
am: 5b32b91d73

Change-Id: I75fff4a7353051adb0843bac579edf81247c1fb1

7 years agoMerge "Allow redefined methods/classes to access fields"
Treehugger Robot [Fri, 16 Dec 2016 18:51:17 +0000 (18:51 +0000)]
Merge "Allow redefined methods/classes to access fields"

7 years agoMerge "Add HVariableInputSizeInstruction."
Mingyao Yang [Fri, 16 Dec 2016 18:20:43 +0000 (18:20 +0000)]
Merge "Add HVariableInputSizeInstruction."
am: 89b31a3369

Change-Id: I4e3778a9ecf905e6a968e3fc6109209ad56087bb

7 years agoMerge "Add HVariableInputSizeInstruction."
Mingyao Yang [Fri, 16 Dec 2016 18:14:49 +0000 (18:14 +0000)]
Merge "Add HVariableInputSizeInstruction."

7 years agoAllow redefined methods/classes to access fields
Alex Light [Thu, 15 Dec 2016 19:34:13 +0000 (11:34 -0800)]
Allow redefined methods/classes to access fields

Previously we were not updating the ArtFields of redefined classes.
This meant that the fields of redefined classes could not be accessed.

Bug: 32369913

Test: ./test/run-test --host 917
Test: mma -j40 test-art-host

Change-Id: If039e883e9a57970a0cffbc7dcbbaaf2d44490aa

7 years agoMerge "Clear exception if FindClass fails."
Nicolas Geoffray [Fri, 16 Dec 2016 16:32:07 +0000 (16:32 +0000)]
Merge "Clear exception if FindClass fails."
am: 20b66e727a

Change-Id: I2454d59bdfaa455462ac5035b7cd0118233a2b7e

7 years agoMerge "Clear exception if FindClass fails."
Nicolas Geoffray [Fri, 16 Dec 2016 16:20:15 +0000 (16:20 +0000)]
Merge "Clear exception if FindClass fails."

7 years agoClear exception if FindClass fails.
Nicolas Geoffray [Fri, 16 Dec 2016 16:14:39 +0000 (16:14 +0000)]
Clear exception if FindClass fails.

Test: verifier_deps_test.
bug: 30937355
Change-Id: I9916ec00010de012939462d4f30147e8b64fe279

7 years agoMerge "Do not resolve types with vdex."
Nicolas Geoffray [Fri, 16 Dec 2016 15:25:03 +0000 (15:25 +0000)]
Merge "Do not resolve types with vdex."
am: 0f69f7425c

Change-Id: Id2eda0a19fd4d09092801b6ffde76b1239782987

7 years agoMerge "Do not resolve types with vdex."
Nicolas Geoffray [Fri, 16 Dec 2016 15:11:15 +0000 (15:11 +0000)]
Merge "Do not resolve types with vdex."

7 years agoARM: VIXL32: Use 16-bit encoding for B(cond,...) where possible.
Artem Serov [Mon, 12 Dec 2016 15:51:15 +0000 (15:51 +0000)]
ARM: VIXL32: Use 16-bit encoding for B(cond,...) where possible.

If conditional branch's target is known to be not far from branch
(within the range of 254 bytes), 16-bit encoding can be used.
However, we can't assume this by default for branches to a basic
block or a slow path; if we do and fail the range requirement,
veneer pool will be emitted.

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

7 years agoARM: VIXL32: Implement some dispatch optimizations.
Artem Serov [Fri, 2 Dec 2016 19:19:58 +0000 (19:19 +0000)]
ARM: VIXL32: Implement some dispatch optimizations.

Implement dispatch optimizations for LoadClass, LoadString and
HInvokeStaticOrDirect. Still need to implement JitTables.

Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-host
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-target

Change-Id: I6e24bc11f3915aa92eede687a864b7ea3a6ab165

7 years agoDo not resolve types with vdex.
Nicolas Geoffray [Thu, 15 Dec 2016 13:20:02 +0000 (13:20 +0000)]
Do not resolve types with vdex.

We don't need to, and it's time expensive.

test: test-art-host, 2x faster vdex compilation time.
bug: 30937355

Change-Id: Ic04ebfee9172ed676fbb38e6901615ed3473352a

7 years agoMerge "ARM: VIXL32: Do a code cleanup."
Nicolas Geoffray [Fri, 16 Dec 2016 13:07:24 +0000 (13:07 +0000)]
Merge "ARM: VIXL32: Do a code cleanup."
am: 7e9a562e42

Change-Id: I244776733d4b2944d0988120f04f7c6e8e0fe4f7

7 years agoMerge "ARM: VIXL32: Do a code cleanup."
Nicolas Geoffray [Fri, 16 Dec 2016 13:00:02 +0000 (13:00 +0000)]
Merge "ARM: VIXL32: Do a code cleanup."

7 years agoMerge "Remove dex cache string from mirror::Class."
Nicolas Geoffray [Fri, 16 Dec 2016 09:44:48 +0000 (09:44 +0000)]
Merge "Remove dex cache string from mirror::Class."
am: 913e6e6f36

Change-Id: Ie5c693e2e6e7daa549abbf1152749af597d0faef

7 years agoMerge "Remove dex cache string from mirror::Class."
Nicolas Geoffray [Fri, 16 Dec 2016 09:32:22 +0000 (09:32 +0000)]
Merge "Remove dex cache string from mirror::Class."

7 years agoMerge "Flush JIT data cache when committing code."
Nicolas Geoffray [Fri, 16 Dec 2016 09:05:12 +0000 (09:05 +0000)]
Merge "Flush JIT data cache when committing code."
am: 4c1667fd52

Change-Id: If410759aad4f2aa3c442de7b36b48342d3f25347

7 years agoMerge "Flush JIT data cache when committing code."
Nicolas Geoffray [Fri, 16 Dec 2016 08:57:36 +0000 (08:57 +0000)]
Merge "Flush JIT data cache when committing code."

7 years agoMerge "Fill in empty iftable early"
Mathieu Chartier [Fri, 16 Dec 2016 00:30:39 +0000 (00:30 +0000)]
Merge "Fill in empty iftable early"
am: a3dccf967a

Change-Id: Iff2e45b20e8dba1c4cf41a5458a9d70d03c89189

7 years agoMerge "Fill in empty iftable early"
Mathieu Chartier [Fri, 16 Dec 2016 00:25:32 +0000 (00:25 +0000)]
Merge "Fill in empty iftable early"

7 years agoFill in empty iftable early
Mathieu Chartier [Thu, 15 Dec 2016 22:21:04 +0000 (14:21 -0800)]
Fill in empty iftable early

Previously it would not get filled in and remain null for some
erroneous classes. This caused crashes for things like
GetIfTableCount.

Added regression test (sample failure):
class_linker_test F 12-15 14:20:09 28771 28771 class-inl.h:532] Check failed: ret != nullptr java.lang.Class<Erroneous>

Bug: 33650297
Bug: 33642884

Test: test-art-host

Change-Id: I506210bad17d6d2c58ca7870165f8a4a514f64fe

7 years agoMerge "Fixed signal 11 bug by not testing resolved method first."
Aart Bik [Thu, 15 Dec 2016 21:59:30 +0000 (21:59 +0000)]
Merge "Fixed signal 11 bug by not testing resolved method first."
am: 2c43590dc2

Change-Id: I1def3c48276633519d8d6871f41a58fe654f6109

7 years agoMerge "Fixed signal 11 bug by not testing resolved method first."
Treehugger Robot [Thu, 15 Dec 2016 21:50:00 +0000 (21:50 +0000)]
Merge "Fixed signal 11 bug by not testing resolved method first."

7 years agoMerge "Fine tuning the induction analysis."
Aart Bik [Thu, 15 Dec 2016 21:44:58 +0000 (21:44 +0000)]
Merge "Fine tuning the induction analysis."
am: e9f3269b54

Change-Id: Iaf633fbaa6626b60960f1c28d8f08295883c5272

7 years agoMerge "Fine tuning the induction analysis."
Treehugger Robot [Thu, 15 Dec 2016 21:33:54 +0000 (21:33 +0000)]
Merge "Fine tuning the induction analysis."

7 years agoMerge "Modify reporting when only true divergences are requested."
Aart Bik [Thu, 15 Dec 2016 20:10:54 +0000 (20:10 +0000)]
Merge "Modify reporting when only true divergences are requested."
am: 45d75c6194

Change-Id: I14d99574fa0575dda01136ed7674ccc2f553ae88

7 years agoMerge "Modify reporting when only true divergences are requested."
Treehugger Robot [Thu, 15 Dec 2016 20:06:02 +0000 (20:06 +0000)]
Merge "Modify reporting when only true divergences are requested."

7 years agoAdd HVariableInputSizeInstruction.
Mingyao Yang [Thu, 15 Dec 2016 20:02:53 +0000 (12:02 -0800)]
Add HVariableInputSizeInstruction.

Make HPhi and HInvoke subclasses of the new instruction.

Test: m test-art-host-run-test
Change-Id: I303c725876f1f4407b98702d92370be25193fc53

7 years agoMerge "ART: Move to libbase StringPrintf"
Andreas Gampe [Thu, 15 Dec 2016 19:40:22 +0000 (19:40 +0000)]
Merge "ART: Move to libbase StringPrintf"
am: 995a7db371

Change-Id: I1e08e8c07c20dbf69de2576d3aa1ffddcca9be82

7 years agoFine tuning the induction analysis.
Aart Bik [Tue, 13 Dec 2016 19:22:31 +0000 (11:22 -0800)]
Fine tuning the induction analysis.

Rationale:
Based on some self-imposed "blind" testing, improved
the induction variable analysis for typical cases
that provide a bit more elaborate HIR.

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