OSDN Git Service

android-x86/art.git
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 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."
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: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 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: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: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: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: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 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:43:26 +0000 (18:43 +0000)]
Merge "Temporarily disable 153-reference-stress."

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 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...
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 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: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: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"
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: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: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: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: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: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 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: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."
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."
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."
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 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

7 years agoMerge "ART: Move to libbase StringPrintf"
Treehugger Robot [Thu, 15 Dec 2016 19:28:10 +0000 (19:28 +0000)]
Merge "ART: Move to libbase StringPrintf"

7 years agoFixed signal 11 bug by not testing resolved method first.
Aart Bik [Thu, 15 Dec 2016 17:36:31 +0000 (09:36 -0800)]
Fixed signal 11 bug by not testing resolved method first.

Test: test-art-host
Bug: 33656359

Change-Id: Idb1afccf811a2fbf7500fc1d953e118981ad36d4

7 years agoModify reporting when only true divergences are requested.
Aart Bik [Thu, 15 Dec 2016 01:16:10 +0000 (17:16 -0800)]
Modify reporting when only true divergences are requested.

Rationale:
Old tool would still report divergences on time out
(and just skip extra processing). It is more desirable
to treat it as a regular time out, however.

Test: fuzzing itself
BUG: 31267855

Change-Id: I32e9758c464be7a22752a85c25dbb8cb6b889399

7 years agoFlush JIT data cache when committing code.
Nicolas Geoffray [Thu, 15 Dec 2016 17:58:48 +0000 (17:58 +0000)]
Flush JIT data cache when committing code.

Otherwise, executing compiled code may see old data from
the data cache.

Test: ART_TEST_JIT=true test-art-target on arm/arm64
Test: run-libcore-tests.sh (especially jsr166) on arm/arm64
Change-Id: Id037c68897aa0e9ccacd4c5121f3743fb722c6f3

7 years agoART: Move to libbase StringPrintf
Andreas Gampe [Wed, 14 Dec 2016 18:11:49 +0000 (10:11 -0800)]
ART: Move to libbase StringPrintf

Remove ART's StringPrintf implementation. Fix up clients. Add
missing includes where necessary.

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

7 years agoRemove dex cache string from mirror::Class.
Nicolas Geoffray [Wed, 14 Dec 2016 14:59:04 +0000 (14:59 +0000)]
Remove dex cache string from mirror::Class.

The compiled code does not need it anymore.

Test: test-art-host test-art-target
Change-Id: I71c08ce12d450ab2b2cd018330d42a8b8c9e3da2

7 years agoMerge "Add ClassLoader to app-image roots."
Vladimir Marko [Thu, 15 Dec 2016 11:21:21 +0000 (11:21 +0000)]
Merge "Add ClassLoader to app-image roots."

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 agoAdd ClassLoader to app-image roots.
Vladimir Marko [Wed, 9 Nov 2016 16:26:44 +0000 (16:26 +0000)]
Add ClassLoader to app-image roots.

Previously we were looking for class loaders by going
through the dex cache type array. When we change the array
to be hash-based, we may not actually find the class loader
that way.

Bug: 30627598
Test: m test-art-host
Change-Id: Ic91a81853fec9946e26bb8272d2a9120393a43bf

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"