OSDN Git Service

android-x86/art.git
8 years agoAdd read barrier support to the entrypoints.
Man Cao [Wed, 15 Jul 2015 05:31:42 +0000 (22:31 -0700)]
Add read barrier support to the entrypoints.

Also remove "THIS_LOAD_REQUIRES_READ_BARRIER" since reading
an ArtMethod* no longer needs read barrier.

stub_test should also work with read barriers now.

Change-Id: I3fba18042de2f867a18dbdc38519986212bd9769

8 years agoMerge "Fix gcstress tests"
Mathieu Chartier [Fri, 24 Jul 2015 23:17:16 +0000 (23:17 +0000)]
Merge "Fix gcstress tests"

8 years agoFix gcstress tests
Mathieu Chartier [Fri, 24 Jul 2015 23:05:55 +0000 (16:05 -0700)]
Fix gcstress tests

We may visit the native roots multiple times (e.g. temp classes).
This used to not be handled by the SS GC but is now handle by
MarkObjectIfNotInToSpace.

Change-Id: I18226e20b36ace41c155ba4c3f54eac2244f524c

8 years agoMerge "ART: Make warnings into errors in InitZygote"
Andreas Gampe [Fri, 24 Jul 2015 22:56:43 +0000 (22:56 +0000)]
Merge "ART: Make warnings into errors in InitZygote"

8 years agoART: Make warnings into errors in InitZygote
Andreas Gampe [Fri, 24 Jul 2015 22:41:20 +0000 (15:41 -0700)]
ART: Make warnings into errors in InitZygote

These warnings are actual errors and lead to failure to start the
runtime. Print them accordingly.

Change-Id: I907e32a3c5da5364ecc9678bb9a11604234d669c

8 years agoMerge "ART: Change the stack dump format to be in line with debuggerd"
Andreas Gampe [Fri, 24 Jul 2015 22:25:01 +0000 (22:25 +0000)]
Merge "ART: Change the stack dump format to be in line with debuggerd"

8 years agoART: Change the stack dump format to be in line with debuggerd
Andreas Gampe [Thu, 23 Jul 2015 21:37:18 +0000 (14:37 -0700)]
ART: Change the stack dump format to be in line with debuggerd

Make offsets 16 digits on 64-bit platforms.

Add the ability to provide the build fingerprint, and print it in
the traces output.

Bug: 22693991

(cherry picked from commit 242ae94dc39be53e519a6163ea1db494ceb75954)

Change-Id: Ibd3d3b3bd65dce84acfb97a487807d6f280a9508

8 years agoMerge "Revert "runtest: Have gcstress tests skip 955-lambda-smali""
Igor Murashkin [Fri, 24 Jul 2015 22:01:21 +0000 (22:01 +0000)]
Merge "Revert "runtest: Have gcstress tests skip 955-lambda-smali""

8 years agoRevert "runtest: Have gcstress tests skip 955-lambda-smali"
Igor Murashkin [Fri, 24 Jul 2015 21:43:26 +0000 (14:43 -0700)]
Revert "runtest: Have gcstress tests skip 955-lambda-smali"

This reverts commit ef3119e6c75c431d9cf54e92dfe5b805597b1657.

8 years agoMerge "Visit class native roots from VisitReferences"
Mathieu Chartier [Fri, 24 Jul 2015 18:58:57 +0000 (18:58 +0000)]
Merge "Visit class native roots from VisitReferences"

8 years agoVisit class native roots from VisitReferences
Mathieu Chartier [Thu, 23 Jul 2015 23:01:26 +0000 (16:01 -0700)]
Visit class native roots from VisitReferences

Visit class roots when we call Class::VisitReferences instead of in
the class linker. This makes it easier to implement class unloading
since unmarked classes won't have their roots visited by the class
linker.

Bug: 22181835
Change-Id: I63f31e5ebef7b2a0b764b3ba3cb038b3f561b379

8 years agoMerge "Add some more uninterruptible annotations"
Mathieu Chartier [Thu, 23 Jul 2015 21:56:01 +0000 (21:56 +0000)]
Merge "Add some more uninterruptible annotations"

8 years agoAdd some more uninterruptible annotations
Mathieu Chartier [Thu, 23 Jul 2015 21:11:16 +0000 (14:11 -0700)]
Add some more uninterruptible annotations

Added to mirror sites, class linker, and intern table.

Bug: 20072211
Change-Id: I2224bcefefaab05d325f14844b1514e3d719e649

8 years agoMerge "Fix alignments in quick_entrypoints_x86_64.S"
Mathieu Chartier [Thu, 23 Jul 2015 18:59:17 +0000 (18:59 +0000)]
Merge "Fix alignments in quick_entrypoints_x86_64.S"

8 years agoFix alignments in quick_entrypoints_x86_64.S
Man Cao [Thu, 23 Jul 2015 18:18:49 +0000 (11:18 -0700)]
Fix alignments in quick_entrypoints_x86_64.S

Places calling artIsAssignableFromCode() were not 16-byte aligned.

Change-Id: I86ff4f73a942ede09c0206e76614eb826dd896c2

8 years agoMerge "ART: Fix Quick/Optimizing suspend check assumption mismatch."
Vladimir Marko [Thu, 23 Jul 2015 16:53:02 +0000 (16:53 +0000)]
Merge "ART: Fix Quick/Optimizing suspend check assumption mismatch."

8 years agoMerge "Disable Checker for tests that don't invoke the compiler."
David Brazdil [Thu, 23 Jul 2015 16:18:59 +0000 (16:18 +0000)]
Merge "Disable Checker for tests that don't invoke the compiler."

8 years agoART: Fix Quick/Optimizing suspend check assumption mismatch.
Vladimir Marko [Wed, 22 Jul 2015 16:50:37 +0000 (17:50 +0100)]
ART: Fix Quick/Optimizing suspend check assumption mismatch.

Quick's SuspendCheckElimination (SCE) expects that every
method contains a suspend check and it eliminates suspend
checks in loops containing an invoke. Optimizing eliminates
the suspend check from leaf methods, so the combination of
a Quick-compiled loop calling an Optimizing-compiled leaf
method can lead to missing suspend checks and potentially
leading to ANRs.

Enable Quick's kLeafOptimization flag to remove suspend
checks from leaf methods and disable Quick's SCE. This
aligns the suspend check placement for the two backends
and avoids the broken combination.

Currently, all methods containing a try-catch are compiled
with Quick, so it's relatively easy to create a regression
test. However, this test will not be valid when Optimizing
starts supporting try-catch.

Bug: 22657404
Change-Id: I3bc40bf3f5c1e7d18704d1547b139e939950b770

8 years agoDisable Checker for tests that don't invoke the compiler.
David Brazdil [Thu, 23 Jul 2015 10:53:42 +0000 (11:53 +0100)]
Disable Checker for tests that don't invoke the compiler.

Running tests in no-prebuild mode will resort to running the
interpreter when either dex2oat or patchoat are not available, thus
not producing the CFG dump tested by Checker. This patch disables
Checker under such configurations.

Bug: 22552692

Change-Id: I23c97aa0aa627675861ef84f8c570303b614d9af

8 years agoMerge "Fix and extend the documentation of art::Thread's fields offsets."
Roland Levillain [Thu, 23 Jul 2015 10:26:14 +0000 (10:26 +0000)]
Merge "Fix and extend the documentation of art::Thread's fields offsets."

8 years agoMerge "ART: Fix missing role definition"
Andreas Gampe [Thu, 23 Jul 2015 08:14:14 +0000 (08:14 +0000)]
Merge "ART: Fix missing role definition"

8 years agoART: Fix missing role definition
Andreas Gampe [Thu, 23 Jul 2015 06:44:55 +0000 (23:44 -0700)]
ART: Fix missing role definition

Add missing static member definition. Follow-up to
4e2cb098017bf073335ebb02b1bc0a36828cd720

Bug: 20072211
Change-Id: I392da3724ded7c455b9b57add6fceb70191f9ff6

8 years agoMerge "Fix hash set memory leaks"
Mathieu Chartier [Thu, 23 Jul 2015 03:14:15 +0000 (03:14 +0000)]
Merge "Fix hash set memory leaks"

8 years agoFix hash set memory leaks
Mathieu Chartier [Thu, 23 Jul 2015 02:39:56 +0000 (19:39 -0700)]
Fix hash set memory leaks

There was a memory leak if ShrinkToMaximumLoad caused the set to
become 0 size. Fixes valgrind tests.

Change-Id: Ibdd033768d622443fb34e7a5e5e1c00e082a1a4a

8 years agoMerge "Add uninterruptible role"
Mathieu Chartier [Thu, 23 Jul 2015 00:49:51 +0000 (00:49 +0000)]
Merge "Add uninterruptible role"

8 years agoAdd uninterruptible role
Mathieu Chartier [Wed, 22 Jul 2015 23:17:51 +0000 (16:17 -0700)]
Add uninterruptible role

Example error:
cannot call function 'CopyOf' while mutex 'uninterruptible_' is held

TODO: Add annotation to more locations.

Bug: 20072211

Change-Id: I1bbf5a77e3deeafa5898df529cb7cb53a6d010d2

8 years agoMerge "Move to newer clang annotations"
Mathieu Chartier [Wed, 22 Jul 2015 22:19:19 +0000 (22:19 +0000)]
Merge "Move to newer clang annotations"

8 years agoMerge "runtest: Have gcstress tests skip 955-lambda-smali"
Igor Murashkin [Wed, 22 Jul 2015 22:18:42 +0000 (22:18 +0000)]
Merge "runtest: Have gcstress tests skip 955-lambda-smali"

8 years agoruntest: Have gcstress tests skip 955-lambda-smali
Igor Murashkin [Wed, 22 Jul 2015 22:15:06 +0000 (15:15 -0700)]
runtest: Have gcstress tests skip 955-lambda-smali

This prevents the test from failing due to a timeout (temporarily).

Bug: 22665783
Change-Id: I978786ba2f94de8f13e32718a16e6909820dab51

8 years agoMove to newer clang annotations
Mathieu Chartier [Fri, 17 Jul 2015 03:32:27 +0000 (20:32 -0700)]
Move to newer clang annotations

Also enable -Wthread-safety-negative.

Changes:
Switch to capabilities and negative capabilities.

Future work:
Use capabilities to implement uninterruptible annotations to work
with AssertNoThreadSuspension.

Bug: 20072211

Change-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33

8 years agoMerge "ART: Add VerboseMethods to optimizing compiler"
Andreas Gampe [Wed, 22 Jul 2015 21:45:44 +0000 (21:45 +0000)]
Merge "ART: Add VerboseMethods to optimizing compiler"

8 years agoART: Add VerboseMethods to optimizing compiler
Andreas Gampe [Wed, 22 Jul 2015 19:10:13 +0000 (12:10 -0700)]
ART: Add VerboseMethods to optimizing compiler

Bring the optimizing compiler up to Quick levels for debuggability.

Change-Id: Ib2adce7a31cc6a60c37c63d0df5cb6a35a85e790

9 years agoMerge "More diagnostics for flaky oat file assistant test."
Richard Uhler [Wed, 22 Jul 2015 19:24:28 +0000 (19:24 +0000)]
Merge "More diagnostics for flaky oat file assistant test."

9 years agoMerge "Replaced CHECK with EXPECT in tests."
Aart Bik [Wed, 22 Jul 2015 18:33:17 +0000 (18:33 +0000)]
Merge "Replaced CHECK with EXPECT in tests."

9 years agoReplaced CHECK with EXPECT in tests.
Aart Bik [Wed, 22 Jul 2015 18:27:39 +0000 (11:27 -0700)]
Replaced CHECK with EXPECT in tests.

Doh!

Change-Id: Ibef45031146215034647c7eaab4065c766d6fb86

9 years agoMerge "Revert "Fixes and improvements in ReferenceTypePropagation""
Calin Juravle [Wed, 22 Jul 2015 17:20:08 +0000 (17:20 +0000)]
Merge "Revert "Fixes and improvements in ReferenceTypePropagation""

9 years agoMerge "Revert "Use the object class as top in reference type propagation""
Calin Juravle [Wed, 22 Jul 2015 17:19:20 +0000 (17:19 +0000)]
Merge "Revert "Use the object class as top in reference type propagation""

9 years agoRevert "Use the object class as top in reference type propagation"
Calin Juravle [Wed, 22 Jul 2015 17:14:50 +0000 (17:14 +0000)]
Revert "Use the object class as top in reference type propagation"

This reverts commit 3fabec7a25d151b26ba7de13615bbead0dd615a6.

Change-Id: Id8614f6b6e3e0e4c9caeb9f771e4c145d9fec64f

9 years agoRevert "Fixes and improvements in ReferenceTypePropagation"
Calin Juravle [Wed, 22 Jul 2015 17:14:32 +0000 (17:14 +0000)]
Revert "Fixes and improvements in ReferenceTypePropagation"

This reverts commit b0d5fc0ac139da4aaa1440263416b9bde05630b0.

Change-Id: Iea8adfc0bd4cb7ee2b292278b8bac80a259acbd1

9 years agoMerge "ART: Fix Thumb2 literal fixup."
Vladimir Marko [Wed, 22 Jul 2015 16:32:16 +0000 (16:32 +0000)]
Merge "ART: Fix Thumb2 literal fixup."

9 years agoFix and extend the documentation of art::Thread's fields offsets.
Roland Levillain [Wed, 22 Jul 2015 16:19:28 +0000 (17:19 +0100)]
Fix and extend the documentation of art::Thread's fields offsets.

Change-Id: Ie13c71d1b734ec0778c388b9bcb7773dcf319f16

9 years agoMerge "Added unit tests to LICM."
Aart Bik [Wed, 22 Jul 2015 16:13:43 +0000 (16:13 +0000)]
Merge "Added unit tests to LICM."

9 years agoMore diagnostics for flaky oat file assistant test.
Richard Uhler [Wed, 22 Jul 2015 15:25:11 +0000 (08:25 -0700)]
More diagnostics for flaky oat file assistant test.

When we generate an odex file for test, verify it is generated properly, and
if it is not supposed to be generated pic, verify it needs relocation right
after generating the odex file.

Bug: 22599792
Change-Id: I75fbbaafc7a425e20fe3495657e1c38ae7b15d56

9 years agoMerge "When a Checker assertion cannot be parsed, display it."
Roland Levillain [Wed, 22 Jul 2015 15:18:42 +0000 (15:18 +0000)]
Merge "When a Checker assertion cannot be parsed, display it."

9 years agoMerge "Delete extraneous prefix `SideEffects::` in `nodes.h`."
Roland Levillain [Wed, 22 Jul 2015 14:42:54 +0000 (14:42 +0000)]
Merge "Delete extraneous prefix `SideEffects::` in `nodes.h`."

9 years agoWhen a Checker assertion cannot be parsed, display it.
Roland Levillain [Wed, 22 Jul 2015 12:37:27 +0000 (13:37 +0100)]
When a Checker assertion cannot be parsed, display it.

Change-Id: Ib667c7aa24b2753f0963ed6b1f9f4227a9e586f4

9 years agoDelete extraneous prefix `SideEffects::` in `nodes.h`.
Alexandre Rames [Wed, 22 Jul 2015 10:32:58 +0000 (11:32 +0100)]
Delete extraneous prefix `SideEffects::` in `nodes.h`.

Change-Id: Ic0a8442d20323df0d9db9e6a1d26c07bd903a13d

9 years agoART: Fix Thumb2 literal fixup.
Vladimir Marko [Wed, 22 Jul 2015 10:28:14 +0000 (11:28 +0100)]
ART: Fix Thumb2 literal fixup.

When processing a load literal during fixup, we use the
current code size to determine whether we need to add the
padding before literals. However, this may change by the end
of the fixup, yet we didn't recalculate to see if the load
literal is pushed out of range.

Instead of making the load literal fixup also depend on all
preceding fixups, add an extra pass over literals when we
need the padding and repeat the fixup loop if needed.

Change-Id: Ia21d660486167a2dcb1ad4afe8acc669b4af669d

9 years agoMerge "Use the object class as top in reference type propagation"
Calin Juravle [Wed, 22 Jul 2015 11:20:14 +0000 (11:20 +0000)]
Merge "Use the object class as top in reference type propagation"

9 years agoMerge "Fixes and improvements in ReferenceTypePropagation"
Calin Juravle [Wed, 22 Jul 2015 11:20:01 +0000 (11:20 +0000)]
Merge "Fixes and improvements in ReferenceTypePropagation"

9 years agoAdded unit tests to LICM.
Aart Bik [Wed, 22 Jul 2015 01:30:18 +0000 (18:30 -0700)]
Added unit tests to LICM.

Rationale:
LICM did not have its own unit test yet, and it was a good
time to ensure that the improved side effect analysis does
what it is supposed to. Also, a nice way for me to get
familiar with the testing infrastructure.

Change-Id: I16471e5fd99615c04a59b09c4a69126d7a94684f

9 years agoMerge changes from topic 'lambda_experimental'
Igor Murashkin [Wed, 22 Jul 2015 01:00:59 +0000 (01:00 +0000)]
Merge changes from topic 'lambda_experimental'

* changes:
  interpreter: Add tests for move-result after invoke-lambda
  verifier: Skip verification of methods when seeing experimental opcodes

9 years agointerpreter: Add tests for move-result after invoke-lambda
Igor Murashkin [Wed, 22 Jul 2015 00:04:35 +0000 (17:04 -0700)]
interpreter: Add tests for move-result after invoke-lambda

Bug: 22638098
Change-Id: I9c428055eef0bc95f4f7aacd03be56547df812d9

9 years agoverifier: Skip verification of methods when seeing experimental opcodes
Igor Murashkin [Wed, 22 Jul 2015 00:03:36 +0000 (17:03 -0700)]
verifier: Skip verification of methods when seeing experimental opcodes

Bug: 22638098
Change-Id: I9f172f3e0e7ad2aa8873e4036415702fee6bf2eb

9 years agoMerge "Prefer 32-bit host executables on Mac."
Ying Wang [Tue, 21 Jul 2015 23:45:21 +0000 (23:45 +0000)]
Merge "Prefer 32-bit host executables on Mac."

9 years agoMerge "Add more checks to diagnose flaky oat file assistant test."
Richard Uhler [Tue, 21 Jul 2015 20:27:18 +0000 (20:27 +0000)]
Merge "Add more checks to diagnose flaky oat file assistant test."

9 years agoPrefer 32-bit host executables on Mac.
Ying Wang [Tue, 21 Jul 2015 19:05:30 +0000 (12:05 -0700)]
Prefer 32-bit host executables on Mac.

Bug: 22527295
Change-Id: I2cb1d3086b65b8227e6bdac9c0485fdc452f1e9c

9 years agoMerge "Refine the canary pattern in RedZone"
Andreas Gampe [Tue, 21 Jul 2015 17:56:40 +0000 (17:56 +0000)]
Merge "Refine the canary pattern in RedZone"

9 years agoMerge "ART: Fix UninitializedReference handling"
Andreas Gampe [Tue, 21 Jul 2015 16:32:22 +0000 (16:32 +0000)]
Merge "ART: Fix UninitializedReference handling"

9 years agoART: Fix UninitializedReference handling
Andreas Gampe [Tue, 14 Jul 2015 04:12:43 +0000 (21:12 -0700)]
ART: Fix UninitializedReference handling

The merge rules in the verifier allowed Object to be successfully
merged with uninitialized references. This is invalid and should
result in a conflict. Fix by moving UninitializedReference rules
earlier.

Also add a test that forward merging is correctly allowed, both
with a valid result as well as a conflict.

Also add tests that backwards branches have the expected behavior.

Bug: 22411633
Change-Id: If837376c15f0b3550d6ce1721a3cde5901c80c7f

9 years agoMerge "Fix bug in OatFileAssistant::GetBestOatFile."
Richard Uhler [Tue, 21 Jul 2015 16:08:10 +0000 (16:08 +0000)]
Merge "Fix bug in OatFileAssistant::GetBestOatFile."

9 years agoMerge "ART: Remove some of the Mac craziness"
Andreas Gampe [Tue, 21 Jul 2015 15:56:21 +0000 (15:56 +0000)]
Merge "ART: Remove some of the Mac craziness"

9 years agoART: Remove some of the Mac craziness
Andreas Gampe [Wed, 15 Jul 2015 06:34:44 +0000 (23:34 -0700)]
ART: Remove some of the Mac craziness

We rely on new-enough Clang/LLVM builds nowadays. The integrated
assembler supports named parameters. Throw away most of the
old duplication (effectively cutting support for older Clang
versions). The only required duplications are:

1) Clang as does not support .altmacro. However, the Clang
preprocessor works different wrt/ the GCC preprocessor
and does not give us trouble with inserted spaces.

2) On the Mac, symbols are prefixed with an underscore.

This should help to avoid breaking the Mac build when changing
the assembly code, and prepare for a complete Clang-only build
for x86 and x86-64. Switching to the integrated assembler for
the host build may be done in a follow-up CL.

Bug: 17443165
Change-Id: I1a077d4b612abc2b1b851c1bdabb5008a52e5aa6

9 years agoUse the object class as top in reference type propagation
Calin Juravle [Thu, 16 Jul 2015 15:51:30 +0000 (16:51 +0100)]
Use the object class as top in reference type propagation

This properly types all instructions, making it safe to query the type
at any time.

This also moves a few functions from class.h to class-inl.h to please
gcc linker when compiling for target.

Change-Id: I6b7ce965c10834c994b95529ab65a548515b4406

9 years agoFixes and improvements in ReferenceTypePropagation
Calin Juravle [Wed, 15 Jul 2015 13:41:29 +0000 (14:41 +0100)]
Fixes and improvements in ReferenceTypePropagation

- Bound object types after a CheckCast. This increases the precision of
(inlining) generic operations.
- Make sure that the BoundType is exact when the class is final.
- Make sure that we don't duplicate BoundTypes when we run the analysis
more than once.

Change-Id: Ic22b610766fae101f942c0d753ddcac32ac1844a

9 years agoMerge "Don't check code pointer for proxies in ArtMethod::GetQuickFrameInfo"
Mathieu Chartier [Tue, 21 Jul 2015 01:20:16 +0000 (01:20 +0000)]
Merge "Don't check code pointer for proxies in ArtMethod::GetQuickFrameInfo"

9 years agoMerge "Fix broken tests."
Aart Bik [Tue, 21 Jul 2015 01:01:36 +0000 (01:01 +0000)]
Merge "Fix broken tests."

9 years agoFix broken tests.
Aart Bik [Mon, 20 Jul 2015 21:08:59 +0000 (14:08 -0700)]
Fix broken tests.

Rationale:
  (1) volatile field write/read need to apply to all
      to comply with Java memory model
  (2) clinit only needs only the write
  (3) added conservative assumptions to memory barrier
      (nothing broke, but this seems better)

Change-Id: I37787ec8f3f2c8d6166a94c57193fa4544ad3372

9 years agoMerge "runtime: Add lambda box/unbox object equality"
Igor Murashkin [Mon, 20 Jul 2015 22:36:04 +0000 (22:36 +0000)]
Merge "runtime: Add lambda box/unbox object equality"

9 years agoruntime: Add lambda box/unbox object equality
Igor Murashkin [Fri, 10 Jul 2015 20:49:08 +0000 (13:49 -0700)]
runtime: Add lambda box/unbox object equality

A lambda that is boxed with box-lambda is now stored as a weak reference
in a global runtime table (lambda::BoxTable). Repeatedly boxing the same
lambda closure value will always return the same java.lang.Object back.

Since there is no way to observe the address of an object, a GC can
happen and clean up the table of any dead boxed lambdas, which can also
shrink the table to prevent the memory use from growing too much.

(Note that a lambda closure is immutable, so hashing over it is
guaranteed safe.)

Change-Id: I786c1323ff14eed937936b303d511875f9642524

9 years agoMerge "Improved side effect analysis (field/array write/read)."
Aart Bik [Mon, 20 Jul 2015 17:56:35 +0000 (17:56 +0000)]
Merge "Improved side effect analysis (field/array write/read)."

9 years agoImproved side effect analysis (field/array write/read).
Aart Bik [Tue, 14 Jul 2015 23:07:00 +0000 (16:07 -0700)]
Improved side effect analysis (field/array write/read).

Rationale:
Types (int, float etc.) and access type (field vs. array)
can be used to disambiguate write/read side-effects analysis.
This directly improves e.g. dead code elimination and licm.

Change-Id: I371f6909a3f42bda13190a03f04c4a867bde1d06

9 years agoAdd more checks to diagnose flaky oat file assistant test.
Richard Uhler [Mon, 20 Jul 2015 16:40:34 +0000 (09:40 -0700)]
Add more checks to diagnose flaky oat file assistant test.

Bug: 22599792
Change-Id: I00574444133fb1cb2571f6ae71ac39c30a36275f

9 years agoFix bug in OatFileAssistant::GetBestOatFile.
Richard Uhler [Fri, 17 Jul 2015 19:28:32 +0000 (12:28 -0700)]
Fix bug in OatFileAssistant::GetBestOatFile.

Previously, GetBestOatFile would fail to return an oat file in the
case where a non-executable oat file was requested and the only
problem with the oat file was that it wasn't relocated.

Bug: 22561444
Change-Id: I6446bf474afaf6c97861e7a89bd74a07c5a52a21

9 years agoMerge "ART: Fix arm32 quick_invoke_stub CFI"
Andreas Gampe [Mon, 20 Jul 2015 15:25:55 +0000 (15:25 +0000)]
Merge "ART: Fix arm32 quick_invoke_stub CFI"

9 years agoMerge "Improve documentation of memory layouts in stack_map.h."
Roland Levillain [Mon, 20 Jul 2015 08:57:36 +0000 (08:57 +0000)]
Merge "Improve documentation of memory layouts in stack_map.h."

9 years agoDon't check code pointer for proxies in ArtMethod::GetQuickFrameInfo
Mathieu Chartier [Sat, 18 Jul 2015 02:53:47 +0000 (19:53 -0700)]
Don't check code pointer for proxies in ArtMethod::GetQuickFrameInfo

Bug: 22541058

Change-Id: Id084a69ccd9835147ec71df6bb759e0f1b5e6fbf

9 years agoART: Fix arm32 quick_invoke_stub CFI
Andreas Gampe [Sat, 18 Jul 2015 03:14:50 +0000 (20:14 -0700)]
ART: Fix arm32 quick_invoke_stub CFI

Follow-up to 4808846b2a8647a448aaa05d561a4f60b190196b.

Change-Id: I534ba39a4f59eaea9cfec8e81c944675284fc427

9 years agoMerge "Get non proxy method for StackDumpVisitor"
Mathieu Chartier [Sat, 18 Jul 2015 02:11:12 +0000 (02:11 +0000)]
Merge "Get non proxy method for StackDumpVisitor"

9 years agoGet non proxy method for StackDumpVisitor
Mathieu Chartier [Sat, 18 Jul 2015 01:46:32 +0000 (18:46 -0700)]
Get non proxy method for StackDumpVisitor

Fixes failing DCHECK.

Bug: 22553459
Change-Id: I6fe1012f9a5f8d29cb98bf25e3a279da51c5e1c0

9 years agoMerge "Change intern table to not use WaitHoldingLocks"
Mathieu Chartier [Sat, 18 Jul 2015 01:49:00 +0000 (01:49 +0000)]
Merge "Change intern table to not use WaitHoldingLocks"

9 years agoMerge "runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS"
Igor Murashkin [Sat, 18 Jul 2015 00:40:25 +0000 (00:40 +0000)]
Merge "runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS"

9 years agoruntime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS
Igor Murashkin [Sat, 11 Jul 2015 01:27:47 +0000 (18:27 -0700)]
runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS

Use ART_TEST_INTERPRETER_ACCESS_CHECKS=true to run all the tests through
the interpreter with access checks enabled. The normal interpreter tests
do not currently enable access checks, which means that a large part of
the interpreter codebase is untested.

The verifier will force every class into a soft fail mode if
-Xverify:softfail is used, thereby ensuring that if used along with the
interpreter (-Xint) that the interpret is always in access checks mode.

This is used alongside with --compile-filter=verify-at-runtime to
prevent the AOT compiler from putting down any code.

Change-Id: I35a10ed8c43d76fa96133cf01fdad497da387200

9 years agoChange intern table to not use WaitHoldingLocks
Mathieu Chartier [Mon, 13 Jul 2015 21:35:43 +0000 (14:35 -0700)]
Change intern table to not use WaitHoldingLocks

Bug: 22423014
Change-Id: I9e16b8cb4def72fff73f1783a182877105feb7aa

9 years agoMerge "Extended test with "cross-over arrays"."
Aart Bik [Fri, 17 Jul 2015 18:01:17 +0000 (18:01 +0000)]
Merge "Extended test with "cross-over arrays"."

9 years agoExtended test with "cross-over arrays".
Aart Bik [Fri, 17 Jul 2015 17:21:15 +0000 (10:21 -0700)]
Extended test with "cross-over arrays".

Rationale:
Since HIR is mostly sloppy with array references types, it is good
to extend the tests with some false invariant array references.

Bug: 22538329

Change-Id: I2ef22cbdc999c0d627590f76e7bac61984ac6ad6

9 years agoMerge "Fix FieldGap priority queue ordering bug."
Richard Uhler [Fri, 17 Jul 2015 15:22:10 +0000 (15:22 +0000)]
Merge "Fix FieldGap priority queue ordering bug."

9 years agoMerge "Improve Thumb2 branch/load-literal fixup performance."
Vladimir Marko [Fri, 17 Jul 2015 12:08:20 +0000 (12:08 +0000)]
Merge "Improve Thumb2 branch/load-literal fixup performance."

9 years agoMerge "Revert "Revert "Use the quickened metadata to compile -QUICK opcodes."""
Nicolas Geoffray [Fri, 17 Jul 2015 12:03:05 +0000 (12:03 +0000)]
Merge "Revert "Revert "Use the quickened metadata to compile -QUICK opcodes."""

9 years agoImprove Thumb2 branch/load-literal fixup performance.
Vladimir Marko [Tue, 14 Jul 2015 10:58:38 +0000 (11:58 +0100)]
Improve Thumb2 branch/load-literal fixup performance.

Replace per-Fixup dependents vectors with a single array
held by the assembler and referenced by the Fixups to avoid
the cost of many allocations with the default allocator.

This improves the compilation time of the boot.oat on N5,
AOSP ToT, by about ~3% as measured by the "Compile Time"
reported with --dump-timing (~2% of the "dex2oat took...").

Change-Id: I7121cdef32d9edc6d287e602d774ffe03f530d18

9 years agoRevert "Revert "Use the quickened metadata to compile -QUICK opcodes.""
Nicolas Geoffray [Fri, 17 Jul 2015 11:51:28 +0000 (11:51 +0000)]
Revert "Revert "Use the quickened metadata to compile -QUICK opcodes.""

This reverts commit 8ab9a9010f3929acbb6c671008b8885b762b01e1.

Change-Id: I1e654d5010ea2112982c3055fcb8c8f9c10e9ac8

9 years agoMerge "Reduce space filter threshold to 128."
Nicolas Geoffray [Fri, 17 Jul 2015 10:57:42 +0000 (10:57 +0000)]
Merge "Reduce space filter threshold to 128."

9 years agoReduce space filter threshold to 128.
Nicolas Geoffray [Fri, 17 Jul 2015 10:11:09 +0000 (11:11 +0100)]
Reduce space filter threshold to 128.

In order to get closer to our code increase limit.

Bug:21868508

Change-Id: I05f76bfd97f03bda3741eca4e6a678c536ad0702

9 years agoMerge "Revert "Use the quickened metadata to compile -QUICK opcodes.""
Nicolas Geoffray [Fri, 17 Jul 2015 10:02:45 +0000 (10:02 +0000)]
Merge "Revert "Use the quickened metadata to compile -QUICK opcodes.""

9 years agoRevert "Use the quickened metadata to compile -QUICK opcodes."
Nicolas Geoffray [Fri, 17 Jul 2015 10:02:30 +0000 (10:02 +0000)]
Revert "Use the quickened metadata to compile -QUICK opcodes."

Broke sdk build. Investigating.

This reverts commit 4515a67434c9e3e1627586629a1f2aba1a99aa6a.

Change-Id: I6c1107ab626758570a59dc6bf3e4228c70a57196

9 years agoMerge "Use the quickened metadata to compile -QUICK opcodes."
Nicolas Geoffray [Fri, 17 Jul 2015 09:15:56 +0000 (09:15 +0000)]
Merge "Use the quickened metadata to compile -QUICK opcodes."

9 years agoMerge "Test on (in)variant static and instance field arrays."
Aart Bik [Fri, 17 Jul 2015 01:15:58 +0000 (01:15 +0000)]
Merge "Test on (in)variant static and instance field arrays."

9 years agoTest on (in)variant static and instance field arrays.
Aart Bik [Fri, 17 Jul 2015 00:40:44 +0000 (17:40 -0700)]
Test on (in)variant static and instance field arrays.

Rationale:
Ensure upcoming improved side effects analysis
results in valid optimizations only.

Bug: 22538329
Change-Id: I87e699853e914a0e42adfd1c4e4f9789781b65df

9 years agoMerge "ART: Fix System.arraycopy"
Andreas Gampe [Fri, 17 Jul 2015 00:51:11 +0000 (00:51 +0000)]
Merge "ART: Fix System.arraycopy"

9 years agoART: Fix System.arraycopy
Andreas Gampe [Fri, 17 Jul 2015 00:41:25 +0000 (17:41 -0700)]
ART: Fix System.arraycopy

We cannot use the same code for float+int and long+double. In debug
mode, this will fail.

Change-Id: Icf263626896a7b53e59685c474e77b4c3128ecd5