OSDN Git Service

android-x86/art.git
7 years agoMerge "ART: Extend Object tag table to be explicitly lockable"
Treehugger Robot [Tue, 8 Nov 2016 02:26:40 +0000 (02:26 +0000)]
Merge "ART: Extend Object tag table to be explicitly lockable"

7 years agoMerge "Add forwarding address checks for X86, arm, arm64"
Treehugger Robot [Mon, 7 Nov 2016 23:07:30 +0000 (23:07 +0000)]
Merge "Add forwarding address checks for X86, arm, arm64"

7 years agoMerge "ART: Add Unlink to FdFile"
Treehugger Robot [Mon, 7 Nov 2016 21:27:46 +0000 (21:27 +0000)]
Merge "ART: Add Unlink to FdFile"

7 years agoMerge "ART: Make excludes explicit"
Treehugger Robot [Mon, 7 Nov 2016 21:02:27 +0000 (21:02 +0000)]
Merge "ART: Make excludes explicit"

7 years agoAdd forwarding address checks for X86, arm, arm64
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

7 years agoMerge "Support genrules with multiple tools"
Colin Cross [Mon, 7 Nov 2016 20:28:25 +0000 (20:28 +0000)]
Merge "Support genrules with multiple tools"

7 years agoART: Add Unlink to FdFile
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

7 years agoSupport genrules with multiple tools
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)

7 years agoART: Extend Object tag table to be explicitly lockable
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

7 years agoART: Make excludes explicit
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

7 years agoMerge "NB getError returns const char"
Dimitry Ivanov [Mon, 7 Nov 2016 18:00:39 +0000 (18:00 +0000)]
Merge "NB getError returns const char"

7 years agoMerge changes I04517ee2,I476792ca
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

7 years agoMerge "MethodHandles: Add tests for array accessors / identity / constant."
Treehugger Robot [Mon, 7 Nov 2016 13:15:41 +0000 (13:15 +0000)]
Merge "MethodHandles: Add tests for array accessors / identity / constant."

7 years agoMerge "Revert "Revert "Enable IntermediateAddress for primitive arrays with read...
Roland Levillain [Mon, 7 Nov 2016 12:54:20 +0000 (12:54 +0000)]
Merge "Revert "Revert "Enable IntermediateAddress for primitive arrays with read barriers."""

7 years agoMethodHandles: Add tests for array accessors / identity / constant.
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

7 years agoMerge "Increase file size limit."
Nicolas Geoffray [Sun, 6 Nov 2016 14:25:42 +0000 (14:25 +0000)]
Merge "Increase file size limit."

7 years agoIncrease 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

7 years agoMerge "Fix poison build."
Nicolas Geoffray [Sun, 6 Nov 2016 13:54:32 +0000 (13:54 +0000)]
Merge "Fix poison build."

7 years agoFix 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

7 years agoMerge "ART: Make TypeCheckSlowPath call kind consistent"
Andreas Gampe [Sat, 5 Nov 2016 02:49:18 +0000 (02:49 +0000)]
Merge "ART: Make TypeCheckSlowPath call kind consistent"

7 years agoART: 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

7 years agoART: Remove unused lock levels
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

7 years agoNB getError returns const char
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

7 years agoMerge "X86_64: Inline checking for kInterfaceCheck check cast"
Mathieu Chartier [Sat, 5 Nov 2016 00:54:21 +0000 (00:54 +0000)]
Merge "X86_64: Inline checking for kInterfaceCheck check cast"

7 years agoART: Clean up old mutex
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

7 years agoX86_64: Inline checking for kInterfaceCheck check cast
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

7 years agoMerge "ART: Ignore google-default-arguments tidy check"
Treehugger Robot [Fri, 4 Nov 2016 20:01:22 +0000 (20:01 +0000)]
Merge "ART: Ignore google-default-arguments tidy check"

7 years agoMerge "ART: Add NOLINT to ObjPtr"
Treehugger Robot [Fri, 4 Nov 2016 20:00:34 +0000 (20:00 +0000)]
Merge "ART: Add NOLINT to ObjPtr"

7 years agoMerge changes I8bbef5e3,Ib68bdc31,Ie39b7f59,I1ef8b65a
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

7 years agoMerge "Account for early exit loop."
Treehugger Robot [Fri, 4 Nov 2016 17:42:31 +0000 (17:42 +0000)]
Merge "Account for early exit loop."

7 years agoMerge "Fix spin waiting for weak ref access in the intern table for CC."
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."

7 years agoMerge "Avoid visiting just eliminated bounds check."
Treehugger Robot [Fri, 4 Nov 2016 16:45:12 +0000 (16:45 +0000)]
Merge "Avoid visiting just eliminated bounds check."

7 years agoRevert "Revert "Enable IntermediateAddress for primitive arrays with read barriers.""
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

7 years agoMerge "Fix ART run-test 562-no-intermediate."
Roland Levillain [Fri, 4 Nov 2016 16:35:07 +0000 (16:35 +0000)]
Merge "Fix ART run-test 562-no-intermediate."

7 years agoART: Ignore google-default-arguments tidy check
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

7 years agoART: Add NOLINT to ObjPtr
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

7 years agoART: Remove "explicit" annotation
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

7 years agoART: Use references in assembler tests
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

7 years agoART: Make ManagedRegister ValueObject
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

7 years agoART: Make Location trivially copyable
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

7 years agoAccount for early exit loop.
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

7 years agoFix ART run-test 562-no-intermediate.
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

7 years agoMerge "Workaround adb issue in run-test."
Nicolas Geoffray [Fri, 4 Nov 2016 13:13:15 +0000 (13:13 +0000)]
Merge "Workaround adb issue in run-test."

7 years agoWorkaround 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

7 years agoMerge "MethodHandles: Implement MethodHandle.asType."
Treehugger Robot [Fri, 4 Nov 2016 11:48:47 +0000 (11:48 +0000)]
Merge "MethodHandles: Implement MethodHandle.asType."

7 years agoMerge "Integrate VerifierDeps in compiler driver."
Nicolas Geoffray [Fri, 4 Nov 2016 11:03:18 +0000 (11:03 +0000)]
Merge "Integrate VerifierDeps in compiler driver."

7 years agoMerge "MethodHandles: Track libcore change eb497095e03068459."
Narayan Kamath [Fri, 4 Nov 2016 08:59:06 +0000 (08:59 +0000)]
Merge "MethodHandles: Track libcore change eb497095e03068459."

7 years agoMerge "More loop-body simplifications."
Aart Bik [Fri, 4 Nov 2016 00:34:11 +0000 (00:34 +0000)]
Merge "More loop-body simplifications."

7 years agoMerge "ART: Make Handle trivially-copyable"
Treehugger Robot [Thu, 3 Nov 2016 23:39:29 +0000 (23:39 +0000)]
Merge "ART: Make Handle trivially-copyable"

7 years agoAvoid visiting just eliminated bounds check.
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

7 years agoART: Make Handle trivially-copyable
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

7 years agoMore loop-body simplifications.
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

7 years agoMerge changes I86bc206d,If20a34e7,I6ee6c826,I240341a0
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

7 years agoFix spin waiting for weak ref access in the intern table for CC.
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

7 years agoMerge "Remove lock from ClassExt installation procedure."
Treehugger Robot [Thu, 3 Nov 2016 18:53:38 +0000 (18:53 +0000)]
Merge "Remove lock from ClassExt installation procedure."

7 years agoMerge "Pass some arguments by const reference."
Treehugger Robot [Thu, 3 Nov 2016 18:17:03 +0000 (18:17 +0000)]
Merge "Pass some arguments by const reference."

7 years agoART: Make some variables references
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

7 years agoART: Put macro parameters into parentheses
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

7 years agoART: Add "explicit" to constructors
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

7 years agoART: Change iterator value type to match
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

7 years agoMerge "Check for forwarding address in READ_BARRIER_MARK_REG"
Mathieu Chartier [Thu, 3 Nov 2016 18:14:56 +0000 (18:14 +0000)]
Merge "Check for forwarding address in READ_BARRIER_MARK_REG"

7 years agoMerge "Update AArch32 VIXL intrinsics w.r.t. the new art::ReadBarrier API."
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."

7 years agoUpdate 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

7 years agoMerge "Add more missing definitions in art::arm::CodeGeneratorARMVIXL."
Roland Levillain [Thu, 3 Nov 2016 17:56:19 +0000 (17:56 +0000)]
Merge "Add more missing definitions in art::arm::CodeGeneratorARMVIXL."

7 years agoAdd 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

7 years agoMerge "Clean up the runtime read barrier and fix fake address dependency."
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."

7 years agoMerge "More store/allocation elimination."
Mingyao Yang [Thu, 3 Nov 2016 17:14:35 +0000 (17:14 +0000)]
Merge "More store/allocation elimination."

7 years agoMerge "Output more for "Unable to determine architecture"."
Nicolas Geoffray [Thu, 3 Nov 2016 17:11:48 +0000 (17:11 +0000)]
Merge "Output more for "Unable to determine architecture"."

7 years agoMerge "ART: Additional initialization for MethodHandle accessors."
Orion Hodson [Thu, 3 Nov 2016 17:07:40 +0000 (17:07 +0000)]
Merge "ART: Additional initialization for MethodHandle accessors."

7 years agoMerge "Add missing definition of CodeGeneratorARMVIXL::GenerateReadBarrierSlow."
Nicolas Geoffray [Thu, 3 Nov 2016 17:05:53 +0000 (17:05 +0000)]
Merge "Add missing definition of CodeGeneratorARMVIXL::GenerateReadBarrierSlow."

7 years agoART: Additional initialization for MethodHandle accessors.
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

7 years agoRemove lock from ClassExt installation procedure.
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

7 years agoAdd missing definition of CodeGeneratorARMVIXL::GenerateReadBarrierSlow.
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

7 years agoMerge "Clean up parameter names in ManagedRegisterEntrySpills."
Vladimir Marko [Thu, 3 Nov 2016 16:10:59 +0000 (16:10 +0000)]
Merge "Clean up parameter names in ManagedRegisterEntrySpills."

7 years agoPass some arguments by const reference.
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

7 years agoMethodHandles: Implement MethodHandle.asType.
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

7 years agoOutput more for "Unable to determine architecture".
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

7 years agoMethodHandles: Track libcore change eb497095e03068459.
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

7 years agoMerge "ARM: VIXL32: Implement intrinsics."
Roland Levillain [Thu, 3 Nov 2016 14:27:57 +0000 (14:27 +0000)]
Merge "ARM: VIXL32: Implement intrinsics."

7 years agoClean up parameter names in ManagedRegisterEntrySpills.
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

7 years agoMerge "Address review comments from change 000e1885701c8f."
Narayan Kamath [Thu, 3 Nov 2016 13:04:40 +0000 (13:04 +0000)]
Merge "Address review comments from change 000e1885701c8f."

7 years agoIntegrate VerifierDeps in compiler driver.
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

7 years agoMerge "ARM: VIXL32: Implement the functionality needed by intrinsics."
Roland Levillain [Thu, 3 Nov 2016 12:53:43 +0000 (12:53 +0000)]
Merge "ARM: VIXL32: Implement the functionality needed by intrinsics."

7 years agoMerge "Add print statements for "Unable to determine architecture"."
Nicolas Geoffray [Thu, 3 Nov 2016 11:29:16 +0000 (11:29 +0000)]
Merge "Add print statements for "Unable to determine architecture"."

7 years agoAdd 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

7 years agoMerge "MIPS32: Improve and moderately clean up mterp."
Vladimir Marko [Thu, 3 Nov 2016 10:21:28 +0000 (10:21 +0000)]
Merge "MIPS32: Improve and moderately clean up mterp."

7 years agoMerge "New instruction simplifications. Extra dce pass. Allow more per block repeats."
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."

7 years agoMerge "Call ClassExt::VisitRoots"
Alex Light [Thu, 3 Nov 2016 00:04:53 +0000 (00:04 +0000)]
Merge "Call ClassExt::VisitRoots"

7 years agoCall 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

7 years agoClean up the runtime read barrier and fix fake address dependency.
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

7 years agoMerge "Improved range analysis (and thus BCE) around min/max/abs intrinsics."
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."

7 years agoMerge "Add ClassExt mirror."
Treehugger Robot [Wed, 2 Nov 2016 21:46:34 +0000 (21:46 +0000)]
Merge "Add ClassExt mirror."

7 years agoNew instruction simplifications. Extra dce pass. Allow more per block repeats.
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

7 years agoCheck for forwarding address in READ_BARRIER_MARK_REG
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

7 years agoAdd ClassExt mirror.
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

7 years agoMore store/allocation elimination.
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

7 years agoImproved range analysis (and thus BCE) around min/max/abs intrinsics.
Aart Bik [Mon, 31 Oct 2016 18:02:50 +0000 (11:02 -0700)]
Improved range analysis (and thus BCE) around min/max/abs intrinsics.

Rationale:
Inspection of some typical bit set utilities revealed that we
were missing obvious cases where two or more array lengths
were combined using a min.

Change-Id: I3e6463f221c793aaa1d592d4caabef0511754ae9
Test: test-art-host-run-test-620-checker-bce-intrinsics

7 years agoAddress review comments from change 000e1885701c8f.
Narayan Kamath [Wed, 2 Nov 2016 12:01:26 +0000 (12:01 +0000)]
Address review comments from change 000e1885701c8f.

Style fixes, and better OOM handling.

bug: 30550796
Test: make test-art-host
Change-Id: I2ab58e25bd08daace6609ba45d860994a354280f

7 years agoARM: VIXL32: Implement intrinsics.
Anton Kirilov [Thu, 13 Oct 2016 19:16:02 +0000 (20:16 +0100)]
ARM: VIXL32: Implement intrinsics.

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

7 years agoARM: VIXL32: Implement the functionality needed by intrinsics.
Anton Kirilov [Tue, 25 Oct 2016 17:17:23 +0000 (18:17 +0100)]
ARM: VIXL32: Implement the functionality needed by intrinsics.

This patch passes:
* 004-UnsafeTest

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