OSDN Git Service
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
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
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
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."
Treehugger Robot [Tue, 20 Dec 2016 12:00:20 +0000 (12:00 +0000)]
Merge "MIPS64: Improve string and class loads."
Nicolas Geoffray [Tue, 20 Dec 2016 09:06:17 +0000 (09:06 +0000)]
Merge "Sharpen HLoadClass from inliner."
Nicolas Geoffray [Tue, 20 Dec 2016 09:05:29 +0000 (09:05 +0000)]
Merge "Make 141-class-unload more robust under JIT."
Mingyao Yang [Tue, 20 Dec 2016 00:02:11 +0000 (00:02 +0000)]
Merge "CHA guard optimization (elimination/hoisting)."
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
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
Aart Bik [Mon, 19 Dec 2016 21:38:57 +0000 (21:38 +0000)]
Merge "Improved induction var and range analysis around types."
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""""
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
Vladimir Marko [Mon, 19 Dec 2016 20:45:48 +0000 (20:45 +0000)]
Merge "Revert "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
Vladimir Marko [Mon, 19 Dec 2016 19:45:32 +0000 (19:45 +0000)]
Merge "Revert "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
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
Treehugger Robot [Mon, 19 Dec 2016 18:56:50 +0000 (18:56 +0000)]
Merge "Fix 616-cha assumptions."
Hiroshi Yamauchi [Mon, 19 Dec 2016 18:43:26 +0000 (18:43 +0000)]
Merge "Temporarily disable 153-reference-stress."
Treehugger Robot [Mon, 19 Dec 2016 18:34:16 +0000 (18:34 +0000)]
Merge "Fix arena allocation counting."
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
Calin Juravle [Mon, 19 Dec 2016 17:13:46 +0000 (17:13 +0000)]
Merge "Fix JIT crash due to unverified dead code"
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
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
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
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"""
Nicolas Geoffray [Mon, 19 Dec 2016 12:58:45 +0000 (12:58 +0000)]
Merge "Don't unquicken RETURN_VOID_NO_BARRIER with vdex."
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
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"
Nicolas Geoffray [Mon, 19 Dec 2016 09:31:18 +0000 (09:31 +0000)]
Merge "ARM: 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
Nicolas Geoffray [Mon, 19 Dec 2016 09:29:54 +0000 (09:29 +0000)]
Merge "ARM: VIXL32: Implement some dispatch optimizations."
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
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
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
Treehugger Robot [Fri, 16 Dec 2016 18:51:17 +0000 (18:51 +0000)]
Merge "Allow redefined methods/classes to access fields"
Mingyao Yang [Fri, 16 Dec 2016 18:14:49 +0000 (18:14 +0000)]
Merge "Add HVariableInputSizeInstruction."
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
Nicolas Geoffray [Fri, 16 Dec 2016 16:20:15 +0000 (16:20 +0000)]
Merge "Clear 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
Nicolas Geoffray [Fri, 16 Dec 2016 15:11:15 +0000 (15:11 +0000)]
Merge "Do not resolve types with vdex."
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
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
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
Nicolas Geoffray [Fri, 16 Dec 2016 13:00:02 +0000 (13:00 +0000)]
Merge "ARM: VIXL32: Do a code cleanup."
Nicolas Geoffray [Fri, 16 Dec 2016 09:32:22 +0000 (09:32 +0000)]
Merge "Remove dex cache string from mirror::Class."
Nicolas Geoffray [Fri, 16 Dec 2016 08:57:36 +0000 (08:57 +0000)]
Merge "Flush JIT data cache when committing code."
Mathieu Chartier [Fri, 16 Dec 2016 00:25:32 +0000 (00:25 +0000)]
Merge "Fill 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
Treehugger Robot [Thu, 15 Dec 2016 21:50:00 +0000 (21:50 +0000)]
Merge "Fixed signal 11 bug by not testing resolved method first."
Treehugger Robot [Thu, 15 Dec 2016 21:33:54 +0000 (21:33 +0000)]
Merge "Fine tuning the induction analysis."
Treehugger Robot [Thu, 15 Dec 2016 20:06:02 +0000 (20:06 +0000)]
Merge "Modify reporting when only true divergences are requested."
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
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
Treehugger Robot [Thu, 15 Dec 2016 19:28:10 +0000 (19:28 +0000)]
Merge "ART: Move to libbase StringPrintf"
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
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
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
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
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
Vladimir Marko [Thu, 15 Dec 2016 11:21:21 +0000 (11:21 +0000)]
Merge "Add ClassLoader to app-image roots."
Andreas Gampe [Thu, 15 Dec 2016 03:46:26 +0000 (03:46 +0000)]
Merge "ART: Blacklist tests that require JIT"
Alex Light [Thu, 15 Dec 2016 01:04:03 +0000 (01:04 +0000)]
Merge "Revert "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
Mathieu Chartier [Wed, 14 Dec 2016 23:47:39 +0000 (23:47 +0000)]
Merge "Rename Reference.clear to Reference.clearReferent"
Treehugger Robot [Wed, 14 Dec 2016 22:49:08 +0000 (22:49 +0000)]
Merge "ART: Add GetLineNumberTable"
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
Alex Light [Wed, 14 Dec 2016 22:21:27 +0000 (22:21 +0000)]
Merge "Basic obsolete methods support"
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
Mathieu Chartier [Wed, 14 Dec 2016 21:04:24 +0000 (21:04 +0000)]
Merge "Don't call into ResolveType with possible exception"
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
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
Mathieu Chartier [Wed, 14 Dec 2016 18:57:56 +0000 (18:57 +0000)]
Merge "Don't visit proxy methods in CHAStackVisitor::VisitFrame"
Treehugger Robot [Wed, 14 Dec 2016 18:32:21 +0000 (18:32 +0000)]
Merge "Remove boolean arguments from NewLibrary()"
Mathieu Chartier [Wed, 14 Dec 2016 17:30:23 +0000 (17:30 +0000)]
Merge "Add exclusion for Reference.clear and reference processing"
Mathieu Chartier [Wed, 14 Dec 2016 17:30:07 +0000 (17:30 +0000)]
Merge "Don't re-read referent in ReferenceProcessor::GetReferent"
Treehugger Robot [Wed, 14 Dec 2016 15:48:29 +0000 (15:48 +0000)]
Merge "Fix 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
Nicolas Geoffray [Wed, 14 Dec 2016 13:43:48 +0000 (13:43 +0000)]
Merge "ARM: Fix breaking changes from recent VIXL update."
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
Treehugger Robot [Wed, 14 Dec 2016 12:00:51 +0000 (12:00 +0000)]
Merge "Implement VisitShouldDeoptimizeFlag for MIPS/MIPS64"
Treehugger Robot [Wed, 14 Dec 2016 11:45:32 +0000 (11:45 +0000)]
Merge "MIPS64: Improve method invocation."
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
Nicolas Geoffray [Wed, 14 Dec 2016 09:21:59 +0000 (09:21 +0000)]
Merge "Support GVN for HLoadClass::LoadKind::kJitTableAddress."
Nicolas Geoffray [Wed, 14 Dec 2016 09:15:05 +0000 (09:15 +0000)]
Merge "Handle primitive types in VerifierTypes::AddAssignability."
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
Treehugger Robot [Wed, 14 Dec 2016 00:54:45 +0000 (00:54 +0000)]
Merge "ART: Make switch back-edge suspension point consistent"
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
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
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
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
Treehugger Robot [Tue, 13 Dec 2016 21:54:10 +0000 (21:54 +0000)]
Merge "ART: Clean up utils.h"
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
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
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
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
Mathieu Chartier [Tue, 13 Dec 2016 19:55:45 +0000 (19:55 +0000)]
Merge "Address some review comments"
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
Mathieu Chartier [Tue, 13 Dec 2016 19:24:35 +0000 (19:24 +0000)]
Merge "Prune uses library classes even without profile"