OSDN Git Service
Vladimir Marko [Tue, 8 Nov 2016 12:32:17 +0000 (12:32 +0000)]
Merge "Add String.indexOf() benchmark."
Treehugger Robot [Tue, 8 Nov 2016 09:19:52 +0000 (09:19 +0000)]
Merge "Argument conversions for setter/getter MethodHandles."
Orion Hodson [Wed, 26 Oct 2016 09:56:25 +0000 (10:56 +0100)]
Argument conversions for setter/getter MethodHandles.
Test: m test-art-host-run-test-959-invoke-polymorphic-accessors
Bug:
30550796
Change-Id: I9898605fc9f9f8a80f47f9559f3ccb99b02b07c8
Treehugger Robot [Tue, 8 Nov 2016 02:26:40 +0000 (02:26 +0000)]
Merge "ART: Extend Object tag table to be explicitly lockable"
Treehugger Robot [Mon, 7 Nov 2016 23:07:30 +0000 (23:07 +0000)]
Merge "Add forwarding address checks for X86, arm, arm64"
Treehugger Robot [Mon, 7 Nov 2016 21:27:46 +0000 (21:27 +0000)]
Merge "ART: Add Unlink to FdFile"
Treehugger Robot [Mon, 7 Nov 2016 21:02:27 +0000 (21:02 +0000)]
Merge "ART: Make excludes explicit"
Mathieu Chartier [Thu, 3 Nov 2016 18:15:04 +0000 (11:15 -0700)]
Add forwarding address checks for X86, arm, arm64
Added to READ_BARRIER_MARK_REG.
Bug:
30162165
Test: test-art-host, test-art-target
Change-Id: I15cf0d51ed3d22fa401e80ffac3877d61593527c
Colin Cross [Mon, 7 Nov 2016 20:28:25 +0000 (20:28 +0000)]
Merge "Support genrules with multiple tools"
Andreas Gampe [Fri, 24 Jun 2016 17:49:32 +0000 (10:49 -0700)]
ART: Add Unlink to FdFile
Add Unlink function that tries to unlink the file if it
was created with a file path. The function tries to
ensure that it does not unlink a newer file.
Add a parameter to Erase to add unlinking.
Test: m test-art-host-gtest-fd_file_test
Change-Id: I49993bb94aec10d5c8d9b2cbea30ebaa255b99e1
Colin Cross [Fri, 4 Nov 2016 22:31:17 +0000 (15:31 -0700)]
Support genrules with multiple tools
To allow genrules with more than one tool, rename the tool property to
tools and make it an array, replace $tool with $(location <label>),
and use $() for other variables for consistency.
Bug:
31948427
Test: compare build.ninja
Change-Id: I8d53510ac081ae20835b3ab7dfee3d74c520ab4d
(cherry picked from commit
7d332965ea44f54ddeedc9b7fadcf2e5b3259f3a)
Andreas Gampe [Mon, 7 Nov 2016 18:10:21 +0000 (10:10 -0800)]
ART: Extend Object tag table to be explicitly lockable
Expose the lock for the system weak holder. Add functions to lock
and unlock the object tagging table, and add accessors that assume
the table is already locked.
Bug:
31385354
Test: m test-art-host
Change-Id: I5a4328b0d439d13e6ace7965e22f01bbf8130f20
Andreas Gampe [Sat, 5 Nov 2016 03:27:24 +0000 (20:27 -0700)]
ART: Make excludes explicit
Fix some missing lock excludes.
Test: m
Change-Id: If74708c5d16469490e3374b7d5ffc23dd2ea5ec1
Dimitry Ivanov [Mon, 7 Nov 2016 18:00:39 +0000 (18:00 +0000)]
Merge "NB getError returns const char"
Treehugger Robot [Mon, 7 Nov 2016 17:46:49 +0000 (17:46 +0000)]
Merge changes I04517ee2,I476792ca
* changes:
ART: Remove unused lock levels
ART: Clean up old mutex
Treehugger Robot [Mon, 7 Nov 2016 13:15:41 +0000 (13:15 +0000)]
Merge "MethodHandles: Add tests for array accessors / identity / constant."
Roland Levillain [Mon, 7 Nov 2016 12:54:20 +0000 (12:54 +0000)]
Merge "Revert "Revert "Enable IntermediateAddress for primitive arrays with read barriers."""
Narayan Kamath [Thu, 3 Nov 2016 18:01:32 +0000 (18:01 +0000)]
MethodHandles: Add tests for array accessors / identity / constant.
Accompanies libcore change
a93a1fcc5b0e.
Test: make test-art-host
Bug:
30550796
Change-Id: Ic793687d98f850ffcd5f09fd3ab02d44644787d5
Vladimir Marko [Thu, 3 Nov 2016 13:25:44 +0000 (13:25 +0000)]
Add String.indexOf() benchmark.
Test: vogar --benchmark art/benchmark/string-indexof/src/StringIndexOfBenchmark.java
Change-Id: I57c8c9c7ede2b0e86a6142e713b4e8be094c82ce
Nicolas Geoffray [Sun, 6 Nov 2016 14:25:42 +0000 (14:25 +0000)]
Merge "Increase file size limit."
Nicolas Geoffray [Sun, 6 Nov 2016 14:24:08 +0000 (14:24 +0000)]
Increase file size limit.
Some checker tests now require more, as the cfg they
generate got bigger.
test: test-art-target
Change-Id: I301bc99730b139f7f5bdec77df3d6bee272d609e
Nicolas Geoffray [Sun, 6 Nov 2016 13:54:32 +0000 (13:54 +0000)]
Merge "Fix poison build."
Nicolas Geoffray [Sat, 5 Nov 2016 15:09:19 +0000 (15:09 +0000)]
Fix poison build.
The slow path for interface check cast isn't fatal for that build.
Test: ART_HEAP_POISONING=true/false m test-art-host-run-test
Change-Id: I3daf59e7f1e828ec72faf899adfafc9abd0fed88
Andreas Gampe [Sat, 5 Nov 2016 02:49:18 +0000 (02:49 +0000)]
Merge "ART: Make TypeCheckSlowPath call kind consistent"
Andreas Gampe [Sat, 5 Nov 2016 02:25:20 +0000 (19:25 -0700)]
ART: Make TypeCheckSlowPath call kind consistent
Slight refactor to make location and code generator consistent.
Bug:
32577579
Bug:
29516974
Test: m test-art-host
Change-Id: I11f8e227d4088d4922e6fdac3348cfe0f6690216
Andreas Gampe [Sat, 5 Nov 2016 01:07:20 +0000 (18:07 -0700)]
ART: Remove unused lock levels
Removes three obsolete lock levels.
Test: m test-art-host
Change-Id: I04517ee29a40ec383010d0e6f561d625360f067a
Dimitry Ivanov [Sat, 5 Nov 2016 01:03:37 +0000 (18:03 -0700)]
NB getError returns const char
We fixed the NB interface to have the callback return const char*
instead of char*, this commit fixes the test.
Bug:
32542970
Test: make test-art-host -j48
Change-Id: Iebab91c94dcc5699623226f220d6ef474b1a5f1f
Mathieu Chartier [Sat, 5 Nov 2016 00:54:21 +0000 (00:54 +0000)]
Merge "X86_64: Inline checking for kInterfaceCheck check cast"
Andreas Gampe [Fri, 4 Nov 2016 23:39:27 +0000 (16:39 -0700)]
ART: Clean up old mutex
Remove obsolete mutex.
Test: m test-art-host
Change-Id: I476792cac4d5d680192e35055abed66772cf8081
Mathieu Chartier [Fri, 4 Nov 2016 02:23:06 +0000 (19:23 -0700)]
X86_64: Inline checking for kInterfaceCheck check cast
Interface check-cast with read barriers:
Before: 5.27 ns/check
After: 2.36 ns/check
Code expansion is 0.29%.
Test: test-art-host
Bug:
32577579
Bug:
29516974
Change-Id: Ie48251f97fbf2c95bd0a7c4bd62075414f8e3ae3
Treehugger Robot [Fri, 4 Nov 2016 20:01:22 +0000 (20:01 +0000)]
Merge "ART: Ignore google-default-arguments tidy check"
Treehugger Robot [Fri, 4 Nov 2016 20:00:34 +0000 (20:00 +0000)]
Merge "ART: Add NOLINT to ObjPtr"
Treehugger Robot [Fri, 4 Nov 2016 19:22:58 +0000 (19:22 +0000)]
Merge changes I8bbef5e3,Ib68bdc31,Ie39b7f59,I1ef8b65a
* changes:
ART: Remove "explicit" annotation
ART: Use references in assembler tests
ART: Make ManagedRegister ValueObject
ART: Make Location trivially copyable
Treehugger Robot [Fri, 4 Nov 2016 17:42:31 +0000 (17:42 +0000)]
Merge "Account for early exit loop."
Hiroshi Yamauchi [Fri, 4 Nov 2016 17:27:24 +0000 (17:27 +0000)]
Merge "Fix spin waiting for weak ref access in the intern table for CC."
Treehugger Robot [Fri, 4 Nov 2016 16:45:12 +0000 (16:45 +0000)]
Merge "Avoid visiting just eliminated bounds check."
Roland Levillain [Fri, 4 Nov 2016 13:44:09 +0000 (13:44 +0000)]
Revert "Revert "Enable IntermediateAddress for primitive arrays with read barriers.""
This reverts commit
4a3aa578eff94eb10450fae1772deb7cb8ddc6a6.
The failing assertion (see b/
30762467):
08-09 11:32:46.767 1654 1656 F dex2oatd: art/compiler/optimizing/register_allocation_resolver.cc:325] Check failed: interval->GetDefinedBy()->IsActualObject() IntermediateAddress@InstanceFieldGet
that motivated the initial revert has been removed by a
previous CL (commit
70e97462116a47ef2e582ea29a037847debcc029,
https://android-review.googlesource.com/#/c/254920/).
Test: ART host and target (ARM, ARM64) tests with `ART_USE_READ_BARRIER=true`.
Bug:
26601270
Bug:
12687968
Change-Id: I09cae0c6c38ca403924153e9f0eb0cc3ff4540e7
Roland Levillain [Fri, 4 Nov 2016 16:35:07 +0000 (16:35 +0000)]
Merge "Fix ART run-test 562-no-intermediate."
Andreas Gampe [Thu, 3 Nov 2016 23:48:51 +0000 (16:48 -0700)]
ART: Ignore google-default-arguments tidy check
Ignore the check for default arguments in virtual functions.
Bug:
32619234
Test: m
Change-Id: I62f1b36ca6fd0965cfd9f6be343b8a63ac4642c6
Andreas Gampe [Thu, 3 Nov 2016 22:46:34 +0000 (15:46 -0700)]
ART: Add NOLINT to ObjPtr
The ObjPtr constructors are constructed to allow implicit conversion.
Also ensure that ObjPtr is trivially copyable.
Bug:
32619234
Test: m
Change-Id: I022e8d7d5a54c0057e9007bb7c13312b343c23b6
Andreas Gampe [Fri, 4 Nov 2016 00:24:45 +0000 (17:24 -0700)]
ART: Remove "explicit" annotation
Remove unnecessary annotation.
Bug:
32619234
Test: m
Change-Id: I8bbef5e3b4b8d3f5ddeaece08fe614b9eeae6f2c
Andreas Gampe [Fri, 4 Nov 2016 00:24:15 +0000 (17:24 -0700)]
ART: Use references in assembler tests
Move parameters to const references.
Bug:
32619234
Test: m
Change-Id: Ib68bdc313b91fee1e9e4e1e794eeca630837b005
Andreas Gampe [Thu, 3 Nov 2016 23:50:05 +0000 (16:50 -0700)]
ART: Make ManagedRegister ValueObject
Make ManagedRegister a value class, and ensure it is trivially
copyable.
Bug:
32619234
Test: m
Change-Id: Ie39b7f59a01ed293891e97110db3f5262f25fb4e
Andreas Gampe [Thu, 3 Nov 2016 21:06:20 +0000 (14:06 -0700)]
ART: Make Location trivially copyable
Location is a ValueObject and should be trivially copyable. Move
copy constructor and copy assignment to default.
Add static assert.
Bug:
32619234
Test: m
Change-Id: I1ef8b65aafdbf84e3d4b7724b93f13936b590eba
Aart Bik [Fri, 4 Nov 2016 00:51:43 +0000 (17:51 -0700)]
Account for early exit loop.
Rationale:
last value computation is obviously only right if
the loop does not have early exits; only needed
if cycle leaks to outside loop in any way.
Bug:
32633772
Test: 623-checker-loop-regressions
Change-Id: Id60beca4704491cff611ad12a24bfc63c09d32c3
Roland Levillain [Fri, 4 Nov 2016 14:10:29 +0000 (14:10 +0000)]
Fix ART run-test 562-no-intermediate.
- Rename it to 562-checker-no-intermediate, so that Checker
assertions are actually verified.
- Fix Checker assertions, as they did not match the
code expected from the compiler.
- Have the test use an integer array (instead of a double
array), so that Checker assertions can be extended to ARM
as well (the ARM back end does not support the
IntermediateAddress instruction on long, float and double
arrays).
Test: make test-art-target-run-test-562-checker-no-intermediate
Bug:
30888043
Change-Id: I32c891948c585983d5fe5d6df092bc7a59c19ae6
Nicolas Geoffray [Fri, 4 Nov 2016 13:13:15 +0000 (13:13 +0000)]
Merge "Workaround adb issue in run-test."
Nicolas Geoffray [Fri, 4 Nov 2016 13:03:05 +0000 (13:03 +0000)]
Workaround adb issue in run-test.
Try a few times before giving up on fetching the architecture.
bug:
32655576
Change-Id: I05c6520efa56570ebe23820fca30fc234c368c88
Treehugger Robot [Fri, 4 Nov 2016 11:48:47 +0000 (11:48 +0000)]
Merge "MethodHandles: Implement MethodHandle.asType."
Nicolas Geoffray [Fri, 4 Nov 2016 11:03:18 +0000 (11:03 +0000)]
Merge "Integrate VerifierDeps in compiler driver."
Narayan Kamath [Fri, 4 Nov 2016 08:59:06 +0000 (08:59 +0000)]
Merge "MethodHandles: Track libcore change
eb497095e03068459."
Aart Bik [Fri, 4 Nov 2016 00:34:11 +0000 (00:34 +0000)]
Merge "More loop-body simplifications."
Treehugger Robot [Thu, 3 Nov 2016 23:39:29 +0000 (23:39 +0000)]
Merge "ART: Make Handle trivially-copyable"
Aart Bik [Tue, 1 Nov 2016 21:23:58 +0000 (14:23 -0700)]
Avoid visiting just eliminated bounds check.
Test: test-art-host
Bug:
32547652
Change-Id: Ifaed3d4eee08c6d044a41ade6c1ee73989489110
Andreas Gampe [Thu, 3 Nov 2016 20:06:25 +0000 (13:06 -0700)]
ART: Make Handle trivially-copyable
Use default copy constructor and copy assignment to make Handle
trivially copyable. Do the same for MutableHandle.
Fix up unused Handle warnings. Add asserts in the HandleScope
test.
Bug:
32619234
Test: m test-art-host
Change-Id: I151f0bdbeeb131a6fc5c44610f345663ebe96c09
Aart Bik [Thu, 3 Nov 2016 00:50:27 +0000 (17:50 -0700)]
More loop-body simplifications.
Rationale:
This removes all dead induction from the CaffeineLogic loop,
giving yet the next performance boost (2700us->1700us).
Also, the runtime is now the same between a DX compiled
and JACK compiled version, giving confidence that all
recent introduced optimizations are generally useful
and something expected from any optimizing compiler.
Last, less realistic improvement will pale anything
seen so far, since it removes the full loop (still TBD).
Test: test-art-host
Change-Id: Id6b89f74b7d009616821dca195200933cc0eaaf2
Treehugger Robot [Thu, 3 Nov 2016 20:43:06 +0000 (20:43 +0000)]
Merge changes I86bc206d,If20a34e7,I6ee6c826,I240341a0
* changes:
ART: Make some variables references
ART: Put macro parameters into parentheses
ART: Add "explicit" to constructors
ART: Change iterator value type to match
Hiroshi Yamauchi [Thu, 3 Nov 2016 20:03:20 +0000 (13:03 -0700)]
Fix spin waiting for weak ref access in the intern table for CC.
Bug:
32637633
Test: test-art-host with CC
Change-Id: I8f0f9f5ca24687f688318ea5cafcbb7f6597448c
Treehugger Robot [Thu, 3 Nov 2016 18:53:38 +0000 (18:53 +0000)]
Merge "Remove lock from ClassExt installation procedure."
Treehugger Robot [Thu, 3 Nov 2016 18:17:03 +0000 (18:17 +0000)]
Merge "Pass some arguments by const reference."
Andreas Gampe [Thu, 3 Nov 2016 15:21:59 +0000 (08:21 -0700)]
ART: Make some variables references
Avoid copying values.
Bug:
32619234
Test: m
Change-Id: I86bc206d6f6fccdf730c62c60317a7a4ae26c11b
Andreas Gampe [Thu, 3 Nov 2016 15:21:21 +0000 (08:21 -0700)]
ART: Put macro parameters into parentheses
Add parentheses to make macros robust.
Bug:
32619234
Test: m
Change-Id: If20a34e7e3497b1d969800d5004c8535810d90a6
Andreas Gampe [Thu, 3 Nov 2016 15:20:17 +0000 (08:20 -0700)]
ART: Add "explicit" to constructors
Add explicit to two constructors with single argument.
Bug:
32619234
Test: m
Change-Id: I6ee6c8264d76017247e2236170c776c801719a0a
Andreas Gampe [Thu, 3 Nov 2016 15:19:01 +0000 (08:19 -0700)]
ART: Change iterator value type to match
Make keys const.
Bug:
32619234
Test: m
Change-Id: I240341a0fec79754bea2ed21c0d0a4ddd119ce35
Mathieu Chartier [Thu, 3 Nov 2016 18:14:56 +0000 (18:14 +0000)]
Merge "Check for forwarding address in READ_BARRIER_MARK_REG"
Roland Levillain [Thu, 3 Nov 2016 18:14:31 +0000 (18:14 +0000)]
Merge "Update AArch32 VIXL intrinsics w.r.t. the new art::ReadBarrier API."
Roland Levillain [Thu, 3 Nov 2016 18:09:18 +0000 (18:09 +0000)]
Update AArch32 VIXL intrinsics w.r.t. the new art::ReadBarrier API.
Update with respect to changes introduced by commit
12b58b23de974232e991c650405f929f8b0dcc9f.
Test: ART_USE_READ_BARRIER=true make
Change-Id: Iaefd664172ff19cce17cf4d3b2064dba86170c22
Roland Levillain [Thu, 3 Nov 2016 17:56:19 +0000 (17:56 +0000)]
Merge "Add more missing definitions in art::arm::CodeGeneratorARMVIXL."
Roland Levillain [Thu, 3 Nov 2016 17:51:58 +0000 (17:51 +0000)]
Add more missing definitions in art::arm::CodeGeneratorARMVIXL.
This fixes build breakages on the read barrier
configuration. These are just dummy definitions, as ART's
AArch32 VIXL back end is work in progress.
Test: ART_USE_READ_BARRIER=true make
Change-Id: I8a0dd9724e4bf95664330232db40fd58bb8d234e
Hiroshi Yamauchi [Thu, 3 Nov 2016 17:36:23 +0000 (17:36 +0000)]
Merge "Clean up the runtime read barrier and fix fake address dependency."
Mingyao Yang [Thu, 3 Nov 2016 17:14:35 +0000 (17:14 +0000)]
Merge "More store/allocation elimination."
Nicolas Geoffray [Thu, 3 Nov 2016 17:11:48 +0000 (17:11 +0000)]
Merge "Output more for "Unable to determine architecture"."
Orion Hodson [Thu, 3 Nov 2016 17:07:40 +0000 (17:07 +0000)]
Merge "ART: Additional initialization for MethodHandle accessors."
Nicolas Geoffray [Thu, 3 Nov 2016 17:05:53 +0000 (17:05 +0000)]
Merge "Add missing definition of CodeGeneratorARMVIXL::GenerateReadBarrierSlow."
Orion Hodson [Thu, 3 Nov 2016 12:01:24 +0000 (12:01 +0000)]
ART: Additional initialization for MethodHandle accessors.
Ensure classes are initialized before static fields are touched by
MethodHandle setters and getters.
Bug:
30550796
Test: m test-art-host-run-test-979-invoke-polymorphic-accessors
Change-Id: Ibac4372607ecbb4e6f7347b89cef6d280632c835
Alex Light [Wed, 2 Nov 2016 18:19:31 +0000 (11:19 -0700)]
Remove lock from ClassExt installation procedure.
We were using a lock on the class to ensure that we avoid races in
setting the ext_data_ field of a class object. We replace this with a
CAS of the field in order to prevent deadlocks.
Test: mma test-art-host
Change-Id: Ie436ff9526f2c3b38a9af49c5606a7cee6d718f1
Roland Levillain [Thu, 3 Nov 2016 16:09:47 +0000 (16:09 +0000)]
Add missing definition of CodeGeneratorARMVIXL::GenerateReadBarrierSlow.
This fixes build breakages on the read barrier table lookup
configuration. This is just a dummy definition, as ART's
AArch32 VIXL back end is work in progress.
Test: ART_USE_READ_BARRIER=true ART_READ_BARRIER_TYPE=TABLELOOKUP make
Change-Id: Ifef39148fb7d9d8a5ad309ec0a2edc8a97d72f3d
Vladimir Marko [Thu, 3 Nov 2016 16:10:59 +0000 (16:10 +0000)]
Merge "Clean up parameter names in ManagedRegisterEntrySpills."
Vladimir Marko [Thu, 3 Nov 2016 15:12:29 +0000 (15:12 +0000)]
Pass some arguments by const reference.
Test: Rely on TreeHugger.
Bug:
32619234
Change-Id: Ia26277893641dcb3562eaeacaec4e089a978d56a
Narayan Kamath [Wed, 2 Nov 2016 18:47:11 +0000 (18:47 +0000)]
MethodHandles: Implement MethodHandle.asType.
Tracks libcore change
16fa583fb5ee489.
Test: make test-art-host
Bug:
30550796
Change-Id: I2457b563f67a183c4eebf94ddbe74cc55f772ee0
Nicolas Geoffray [Thu, 3 Nov 2016 15:03:46 +0000 (15:03 +0000)]
Output more for "Unable to determine architecture".
test: run-test
Change-Id: I3a3637ba5a38f5af7cdf1e4b337e11ff652db893
Narayan Kamath [Wed, 2 Nov 2016 14:16:27 +0000 (14:16 +0000)]
MethodHandles: Track libcore change
eb497095e03068459.
Adds tests for Lookup.unreflect*
Bug:
30550796
Test: make test-art-host
Change-Id: Iba28fa59b9a67cdb1ce894e1c7f244f95e43542b
Roland Levillain [Thu, 3 Nov 2016 14:27:57 +0000 (14:27 +0000)]
Merge "ARM: VIXL32: Implement intrinsics."
Vladimir Marko [Thu, 3 Nov 2016 13:38:52 +0000 (13:38 +0000)]
Clean up parameter names in ManagedRegisterEntrySpills.
Avoid the double underscore prefix. Identifiers starting
with two underscores are reserved for C++ implemenations,
i.e. the C++ compiler and the standard library.
Test: Rely on TreeHugger.
Change-Id: If6d80a63badb2f95f4cbcef946c10911c954419b
Narayan Kamath [Thu, 3 Nov 2016 13:04:40 +0000 (13:04 +0000)]
Merge "Address review comments from change
000e1885701c8f."
Nicolas Geoffray [Thu, 3 Nov 2016 10:52:49 +0000 (10:52 +0000)]
Integrate VerifierDeps in compiler driver.
If a VerifierDeps is given, try fast verify. Otherwise create
a new VerifierDeps and do the full verification.
test: test-art-host, verifier_deps_test
bug:
30937355
Change-Id: Ifb030d7b5232c95872164f601057a56ab96038e1
Roland Levillain [Thu, 3 Nov 2016 12:53:43 +0000 (12:53 +0000)]
Merge "ARM: VIXL32: Implement the functionality needed by intrinsics."
Nicolas Geoffray [Thu, 3 Nov 2016 11:29:16 +0000 (11:29 +0000)]
Merge "Add print statements for "Unable to determine architecture"."
Nicolas Geoffray [Thu, 3 Nov 2016 11:18:48 +0000 (11:18 +0000)]
Add print statements for "Unable to determine architecture".
test: test-art-host-run-test
Change-Id: Ifa57e1782450456622843e4fae15e230c0d19dea
Vladimir Marko [Thu, 3 Nov 2016 10:21:28 +0000 (10:21 +0000)]
Merge "MIPS32: Improve and moderately clean up mterp."
Aart Bik [Thu, 3 Nov 2016 00:05:51 +0000 (00:05 +0000)]
Merge "New instruction simplifications. Extra dce pass. Allow more per block repeats."
Alex Light [Thu, 3 Nov 2016 00:04:53 +0000 (00:04 +0000)]
Merge "Call ClassExt::VisitRoots"
Alex Light [Wed, 2 Nov 2016 23:32:07 +0000 (16:32 -0700)]
Call ClassExt::VisitRoots
We were missing this call.
Test: ART_DEFAULT_GC_TYPE=GSS mma test-art-host
Change-Id: I559a64b04dde514888e37a86fafc260e55196f95
Hiroshi Yamauchi [Tue, 1 Nov 2016 18:55:29 +0000 (11:55 -0700)]
Clean up the runtime read barrier and fix fake address dependency.
- Rename GetReadBarrierPointer to GetReadBarrierState.
- Change its return type to uint32_t.
- Fix the runtime fake address dependency for arm/arm64 using inline
asm.
- Drop ReadBarrier::black_ptr_ and some brooks code.
Bug:
12687968
Test: test-art with CC, Ritz EAAC, libartd boot on N9.
Change-Id: I595970db825db5be2e98ee1fcbd7696d5501af55
Aart Bik [Wed, 2 Nov 2016 21:56:35 +0000 (21:56 +0000)]
Merge "Improved range analysis (and thus BCE) around min/max/abs intrinsics."
Treehugger Robot [Wed, 2 Nov 2016 21:46:34 +0000 (21:46 +0000)]
Merge "Add ClassExt mirror."
Aart Bik [Fri, 28 Oct 2016 22:03:53 +0000 (15:03 -0700)]
New instruction simplifications. Extra dce pass. Allow more per block repeats.
Rationale:
We were missing some obvious simplifications, which left performance
at the table for e.g. CaffeineLogic compiled with dx (4200us->2700us).
The constant for allowing a repeat on a BB seemed very low, at the
very least it should depend on the BB size.
Test: test-art-host
Change-Id: Ic234566e117593e12c936d556222e4cd4f928105
Mathieu Chartier [Wed, 2 Nov 2016 03:13:24 +0000 (20:13 -0700)]
Check for forwarding address in READ_BARRIER_MARK_REG
When the object is in the from-space, the mark bit is not set.
In this case, we can also check the lock word for being a forwarding
address. The forwarding address case happens around 25% of the time.
This CL adds the case for forwarding address lock words to
READ_BARRIER_MARK_REG.
Reduces total read barriers reaching runtime on ritzperf:
Slow paths:
20758783 ->
15457783
Deleted the mark bit check in MarkFromReadBarrier since most of the
callers check the bit now.
Perf:
ReadBarrier::Mark: 2.59% -> 2.12%
art_quick_read_barrier_mark_reg01: 0.79% -> 0.78%
art_quick_read_barrier_mark_reg00: 0.54% -> 0.50%
art_quick_read_barrier_mark_reg02: 0.31% -> 0.25%
Only X86_64 for now, will do other archs after.
Bug:
30162165
Test: test-art-host
Change-Id: Ie7289d684d0e37a887943d77710092e380457860
Alex Light [Mon, 31 Oct 2016 18:12:30 +0000 (11:12 -0700)]
Add ClassExt mirror.
We add the ClassExt type to hold values in Class that are not always
needed without making the Class type larger. For the initial change we
move the verifyError field into this type. It is expected to grow as
time goes on.
Test: mma test-art-host
Change-Id: I1d97df2e1267203841ad47b2effcb66dd76ac12a
Mingyao Yang [Tue, 1 Nov 2016 20:31:58 +0000 (13:31 -0700)]
More store/allocation elimination.
When merging values of an unreturned singleton's location,
do more analysis on the singleton's liveness since the singleton
may not be live in some of the predecessors. And only those
predecessors where the singleton is live should participate in
merging the value of the location.
Test: make test-art-host
Bug:
31716107
Change-Id: I1bf61a84d3473646eb38fd9924bbb063cf664f7f