OSDN Git Service

android-x86/art.git
8 years agoPrevent ArtMethod clearing race
Mathieu Chartier [Wed, 11 May 2016 01:13:20 +0000 (18:13 -0700)]
Prevent ArtMethod clearing race

There was race condition where the GC would be visiting the methods
of a class while the class linker overwrote the contents with 0xFE
when copying to a new array.

Since the GC is holding the class table lock at this time, we can
use this lock in the class linker to prevent the race.

Bug: 28699001
Change-Id: I91ca2406ef723e7be69cd1c53f4bafa2e5f63657

8 years agoMerge "Revert some flaky unloading"
Mathieu Chartier [Wed, 11 May 2016 01:11:02 +0000 (01:11 +0000)]
Merge "Revert some flaky unloading"

8 years agoRevert some flaky unloading
Mathieu Chartier [Wed, 11 May 2016 00:31:48 +0000 (17:31 -0700)]
Revert some flaky unloading

Revert "Revert "Revert "Remove double unloading hack"""

This reverts commit c0f2e678e45ff191f90651117f4e238caa521b80.

Revert "Revert "Revert "Revert "Revert "(dl)Close native libraries on unload"""""

This reverts commit 33bae7d52debe898879fc034a5524b1b165dbd88.

Still flaky.

Bug: 28406866

Change-Id: I31a9ace17c676ac615ed04a9f4ac51582fca55d9

8 years agoMerge changes I11f1f820,Iafec1f83
Mathieu Chartier [Tue, 10 May 2016 20:43:02 +0000 (20:43 +0000)]
Merge changes I11f1f820,Iafec1f83

* changes:
  Revert "Revert "Revert "Revert "(dl)Close native libraries on unload""""
  Revert "Revert "Remove double unloading hack""

8 years agoMerge "Break the debug cycle!"
Aart Bik [Tue, 10 May 2016 19:20:32 +0000 (19:20 +0000)]
Merge "Break the debug cycle!"

8 years agoMerge "Make all java.lang.reflect.Constructor methods handle proxies."
Alex Light [Tue, 10 May 2016 18:05:16 +0000 (18:05 +0000)]
Merge "Make all java.lang.reflect.Constructor methods handle proxies."

8 years agoMerge "Add ability to see if a dex file is backed by an oat file."
Treehugger Robot [Tue, 10 May 2016 17:47:38 +0000 (17:47 +0000)]
Merge "Add ability to see if a dex file is backed by an oat file."

8 years agoMerge "Fix issue with Constructor proxies."
Alex Light [Tue, 10 May 2016 17:17:46 +0000 (17:17 +0000)]
Merge "Fix issue with Constructor proxies."

8 years agoRevert "Revert "Revert "Revert "(dl)Close native libraries on unload""""
Mathieu Chartier [Tue, 10 May 2016 17:12:00 +0000 (10:12 -0700)]
Revert "Revert "Revert "Revert "(dl)Close native libraries on unload""""

This reverts commit 624b68ecbe67dd91cb50f588fbfa2243def47f1e.

8 years agoRevert "Revert "Remove double unloading hack""
Mathieu Chartier [Tue, 10 May 2016 17:11:48 +0000 (10:11 -0700)]
Revert "Revert "Remove double unloading hack""

This reverts commit e9cae49599856fe737cee87783438d2c5dabccfe.

8 years agoBreak the debug cycle!
Aart Bik [Thu, 5 May 2016 22:10:42 +0000 (15:10 -0700)]
Break the debug cycle!

Rationale:
When entering the path that implements method invocation,
it is possible for the interpreter and JIT to cycle around
trying to interpret or compile a method, never making a
decision. This bug fix avoids such cycling with a minimum
of extra runtime overhead.

BUG=28537292

Change-Id: If805b7bc0279019d0ebf322ddd17cb57a9e884eb

8 years agoAdd ability to see if a dex file is backed by an oat file.
Jeff Hao [Fri, 22 Apr 2016 21:00:06 +0000 (14:00 -0700)]
Add ability to see if a dex file is backed by an oat file.

Native support for new DexFile.isBackedByOatFile.

Part of a multi-project change.

Bug: 26880306

(cherry-picked from commit 93a66cc779898d46c620e5d9c8bc71e2a71f6610)

Change-Id: I8843d13d961b24a7caec549abe630524d734e78e

8 years agoFix issue with Constructor proxies.
Alex Light [Mon, 9 May 2016 22:31:18 +0000 (15:31 -0700)]
Fix issue with Constructor proxies.

Bug: 28659889
Change-Id: I4307916c79e7b56608c3ff5c9bbe83e175254f28

8 years agoMerge "Intrinsify String.length() and String.isEmpty() as HIR."
Vladimir Marko [Tue, 10 May 2016 14:30:06 +0000 (14:30 +0000)]
Merge "Intrinsify String.length() and String.isEmpty() as HIR."

8 years agoMerge "DexFile: Add an API to query oat file status."
Narayan Kamath [Tue, 10 May 2016 14:05:52 +0000 (14:05 +0000)]
Merge "DexFile: Add an API to query oat file status."

8 years agoMerge "Reduce memory usage of SSA Phi elimination and make it faster."
Treehugger Robot [Tue, 10 May 2016 13:47:54 +0000 (13:47 +0000)]
Merge "Reduce memory usage of SSA Phi elimination and make it faster."

8 years agoReduce memory usage of SSA Phi elimination and make it faster.
Vladimir Marko [Tue, 10 May 2016 12:31:23 +0000 (13:31 +0100)]
Reduce memory usage of SSA Phi elimination and make it faster.

Use an ArenaBitVector instead of an ArenaSet<> that leaks
its allocated memory on clear(). We were also erroneously
using the O(n) helper ContainsElement() for the ArenaSet<>
instead of the O(log n) ArenaSet<>::find() which made the
methods with large number of processed Phis also very slow
to compile in addition to the enormous memory usage.

Bug: 28684584
Change-Id: Idc7604e51cfae643debd0378baf828a1430ec14c

8 years agoDexFile: Add an API to query oat file status.
Narayan Kamath [Mon, 2 May 2016 12:14:48 +0000 (13:14 +0100)]
DexFile: Add an API to query oat file status.

Adds DexFile.getDexFileStatus(path), which returns an opaque,
human-readable string representation of the oat file status. This
representation isn't guaranteed to be stable and can change from
release to release.

bug: 27494108

(cherry picked from commit cd7e7f78b8e97c1f6419f3f44e0d5fdc6eddfdc6)

Change-Id: If6997f7d28d022e118ffea1eec6183841577a637

8 years agoMerge "Revert "Make run-test default to optimizing compiler.""
Nicolas Geoffray [Tue, 10 May 2016 09:13:29 +0000 (09:13 +0000)]
Merge "Revert "Make run-test default to optimizing compiler.""

8 years agoRevert "Make run-test default to optimizing compiler."
Nicolas Geoffray [Tue, 10 May 2016 09:13:13 +0000 (09:13 +0000)]
Revert "Make run-test default to optimizing compiler."

454 and 457 fail with interpreter access checks.

This reverts commit f494663ab5295fadf7209a9a1bead05be5039858.

Change-Id: Iaff6036e83e1745f4ed00b8d6814abd5759c6854

8 years agoMerge "Fix braino when parsing invoke transition weight."
Treehugger Robot [Tue, 10 May 2016 09:11:00 +0000 (09:11 +0000)]
Merge "Fix braino when parsing invoke transition weight."

8 years agoMerge "Attribute arena allocations previously marked as STL."
Vladimir Marko [Tue, 10 May 2016 08:55:58 +0000 (08:55 +0000)]
Merge "Attribute arena allocations previously marked as STL."

8 years agoFix braino when parsing invoke transition weight.
Nicolas Geoffray [Fri, 6 May 2016 15:52:36 +0000 (16:52 +0100)]
Fix braino when parsing invoke transition weight.

bug:27865109

(cherry picked from commit 95bc2f29ef2e9e6b7a71cd123df0c4a1063be1d7)

Change-Id: I56e21714bf803b8fefa2bd8087cd385c7a57564c

8 years agoMerge "Workaround invokesuper underspecified behavior."
Nicolas Geoffray [Tue, 10 May 2016 08:13:27 +0000 (08:13 +0000)]
Merge "Workaround invokesuper underspecified behavior."

8 years agoMerge "Relax the DCHECK in load store elimination."
Nicolas Geoffray [Tue, 10 May 2016 08:12:41 +0000 (08:12 +0000)]
Merge "Relax the DCHECK in load store elimination."

8 years agoMerge "Remove a common subexpression from profman output"
David Sehr [Tue, 10 May 2016 04:24:17 +0000 (04:24 +0000)]
Merge "Remove a common subexpression from profman output"

8 years agoMerge "Use delete/delete[] rather than free/realloc in tracedump"
David Sehr [Tue, 10 May 2016 01:06:47 +0000 (01:06 +0000)]
Merge "Use delete/delete[] rather than free/realloc in tracedump"

8 years agoMerge "Initialize native loader before starting runtime"
Dimitry Ivanov [Tue, 10 May 2016 00:44:07 +0000 (00:44 +0000)]
Merge "Initialize native loader before starting runtime"

8 years agoMerge "Make --jvm work again"
Treehugger Robot [Tue, 10 May 2016 00:20:57 +0000 (00:20 +0000)]
Merge "Make --jvm work again"

8 years agoMake all java.lang.reflect.Constructor methods handle proxies.
Alex Light [Mon, 9 May 2016 23:25:11 +0000 (16:25 -0700)]
Make all java.lang.reflect.Constructor methods handle proxies.

Bug: 28676926
Change-Id: If5e7f1c886334ce0ea2e3e2b64616eddf69c9377

8 years agoInitialize native loader before starting runtime
Dimitry Ivanov [Mon, 9 May 2016 23:26:13 +0000 (16:26 -0700)]
Initialize native loader before starting runtime

Loading public libraries before everything else
to prevent situation when libssl.so gets into
libopenjdk.so load group which then prevented
from unloading by a global library referencing
the very same libssl.so

Bug: http://b/28449304
Change-Id: I3bbff3cc6926c2377ae5cb5b7b5b5d6e26ea4470

8 years agoMake --jvm work again
Alex Light [Mon, 9 May 2016 23:21:09 +0000 (16:21 -0700)]
Make --jvm work again

A previous commit broke --jvm by making it be passed dex2oat args. Fix
this bug.

Change-Id: I22864ef876c7b3c174af029fe2f1a76cf7825fa7

8 years agoRemove a common subexpression from profman output
David Sehr [Fri, 6 May 2016 19:29:35 +0000 (12:29 -0700)]
Remove a common subexpression from profman output

Change-Id: I12fa4a36f4e9d980a720bb52c6b736ffc91a6700
(cherry picked from commit 727074b62ef86dfb631a99214e6726d7d9c6c6be)

8 years agoUse delete/delete[] rather than free/realloc in tracedump
David Sehr [Fri, 6 May 2016 21:12:23 +0000 (14:12 -0700)]
Use delete/delete[] rather than free/realloc in tracedump

Bug: 28587945
Change-Id: I62281a956503b4351a36d6798bcd61e408b448f6

8 years agoMerge "Revert "Revert "Assembly RegionTLAB allocation fast path for x86_64"""
Treehugger Robot [Mon, 9 May 2016 19:57:08 +0000 (19:57 +0000)]
Merge "Revert "Revert "Assembly RegionTLAB allocation fast path for x86_64"""

8 years agoIntrinsify String.length() and String.isEmpty() as HIR.
Vladimir Marko [Thu, 28 Apr 2016 12:10:02 +0000 (13:10 +0100)]
Intrinsify String.length() and String.isEmpty() as HIR.

Use HArrayLength for String.length() in anticipation of
changing the String.charAt() to HBoundsCheck+HArrayGet to
allow the existing BCE to seamlessly work for strings.
Use HArrayLength+HEqual for String.isEmpty().

We previously relied on inlining but we now want to apply
the new intrinsics even when we do not inline, i.e. when
compiling debuggable (as is currently the case for boot
image) or when we hit inlining limits, i.e. depth, size,
or the number of accumulated dex registers.

Bug: 28330359
Change-Id: Iab9d2f6d2967bdd930a72eb461f27efe8f37c103

8 years agoAttribute arena allocations previously marked as STL.
Vladimir Marko [Mon, 9 May 2016 19:23:34 +0000 (20:23 +0100)]
Attribute arena allocations previously marked as STL.

Bug: 28603175
Change-Id: I488e39b23afb86f3ff5a2df16d2df59eb3adaa0f

8 years agoMerge "Fix ProtoId ordering check in DexFileVerifier."
Vladimir Marko [Mon, 9 May 2016 16:58:28 +0000 (16:58 +0000)]
Merge "Fix ProtoId ordering check in DexFileVerifier."

8 years agoMerge "Make run-test default to optimizing compiler."
Alex Light [Mon, 9 May 2016 16:36:25 +0000 (16:36 +0000)]
Merge "Make run-test default to optimizing compiler."

8 years agoMerge "Improve String.indexOf() intrinsics."
Vladimir Marko [Mon, 9 May 2016 14:59:20 +0000 (14:59 +0000)]
Merge "Improve String.indexOf() intrinsics."

8 years agoMerge "Revert "Remove double unloading hack""
Nicolas Geoffray [Mon, 9 May 2016 08:48:28 +0000 (08:48 +0000)]
Merge "Revert "Remove double unloading hack""

8 years agoRevert "Remove double unloading hack"
Nicolas Geoffray [Mon, 9 May 2016 08:48:08 +0000 (08:48 +0000)]
Revert "Remove double unloading hack"

Needed after dlclose revert.

This reverts commit b408e583385dbf256514885e1671db1b2f633f58.

Change-Id: I0a83af2462f5a51b12d6ee97d70f62b44e487dd5

8 years agoMerge "Revert "Revert "Revert "(dl)Close native libraries on unload""""
Nicolas Geoffray [Mon, 9 May 2016 08:35:46 +0000 (08:35 +0000)]
Merge "Revert "Revert "Revert "(dl)Close native libraries on unload""""

8 years agoRevert "Revert "Revert "(dl)Close native libraries on unload"""
Nicolas Geoffray [Mon, 9 May 2016 08:33:13 +0000 (08:33 +0000)]
Revert "Revert "Revert "(dl)Close native libraries on unload"""

Still flakes on our tests.

This reverts commit 727d6dff8fce26f7f3a252177cc730fbfcbc52ee.

Change-Id: If14076ba9fe91934294c24a23f53d55d88d76fb7

8 years agoMerge "Fix test for verification of clinit method"
Treehugger Robot [Sat, 7 May 2016 01:45:51 +0000 (01:45 +0000)]
Merge "Fix test for verification of clinit method"

8 years agoFix test for verification of clinit method
Alex Light [Sat, 7 May 2016 00:36:36 +0000 (17:36 -0700)]
Fix test for verification of clinit method

Bug: 28605638
Change-Id: Idbf2d59c20b7dda1efb9aa61bce2cefbe2c0040a

8 years agoMerge "Make <clinit> verification stronger for v37+."
Alex Light [Fri, 6 May 2016 21:33:46 +0000 (21:33 +0000)]
Merge "Make <clinit> verification stronger for v37+."

8 years agoMake <clinit> verification stronger for v37+.
Alex Light [Fri, 6 May 2016 17:39:06 +0000 (10:39 -0700)]
Make <clinit> verification stronger for v37+.

Preserve the verification behavior of M for v35 dex files. v37+ get
stronger behavior

Bug: 28605638
Change-Id: If1ff4abcc61e0945f924fe4e10e173c03b4cd1a9

8 years agoMerge "Fix libart tests on target"
Dimitry Ivanov [Fri, 6 May 2016 19:44:15 +0000 (19:44 +0000)]
Merge "Fix libart tests on target"

8 years agoFix libart tests on target
Dimitry Ivanov [Fri, 6 May 2016 00:24:28 +0000 (17:24 -0700)]
Fix libart tests on target

1. Add libart/d.so to the list of additional public libraries
2. Fix java.library.path to include /system/lib(64)? for tests
   run by dalvikvm

Bug: http://b/28449304
Change-Id: I11f2dc22e445389160d6f7ed6743bb9664cf3745

8 years agoImprove String.indexOf() intrinsics.
Vladimir Marko [Fri, 6 May 2016 14:52:12 +0000 (15:52 +0100)]
Improve String.indexOf() intrinsics.

If the code point input is a char, we don't need the slow
path. Also improve the slow-path check (if we do need it)
on arm and arm64 to avoid loading 0xffff into a register.

Bug: 28330359
Change-Id: Ie6514c16126717bb0b11e3c7ab2b60eaa70fed4c

8 years agoMerge "Optimizing: LoadString may not have any side effects."
Vladimir Marko [Fri, 6 May 2016 14:46:47 +0000 (14:46 +0000)]
Merge "Optimizing: LoadString may not have any side effects."

8 years agoMerge "ART: Fix dominance for irreducible loops"
David Brazdil [Fri, 6 May 2016 13:45:50 +0000 (13:45 +0000)]
Merge "ART: Fix dominance for irreducible loops"

8 years agoWorkaround invokesuper underspecified behavior.
Aart Bik [Tue, 5 Apr 2016 00:28:59 +0000 (17:28 -0700)]
Workaround invokesuper underspecified behavior.

The verifier allows invokesuper on a class unrelated
to the referring class. However, the runtime uses the vtable of
the super class of the referring class to lookup the ArtMethod.
Since the receiver has no relation to the referring class, this lead
to either jumping to a wrong method, or "luckily" throw a
NoSuchMethodError if the vtable index is out of bounds of the super
class of the referring class.

This changes the runtime behavior to always throw NoSuchMethodError
when hitting such invokesuper.

Also, we make the verifier consistent with the runtime by treating
such calls unresolved.

bug=27627004

Change-Id: I68486501a9625f91679078c5a980b39974ddbf1c

8 years agoART: Fix dominance for irreducible loops
David Brazdil [Fri, 6 May 2016 11:46:21 +0000 (12:46 +0100)]
ART: Fix dominance for irreducible loops

Computation of dominance was broken in the presence of irreducible
loops because the algorithm assumed that back edges are always
dominated by their respective headers and a fix-point iteration is
therefore unnecessary.

This is not true for irreducible loops, forcing us to revisit their
loop headers and all dependent blocks. This patch adds a fix-point
iteration if a back edge not dominated by its header is found.

Bug: 28611485
Change-Id: If84044e49d5b9c682949648033d2861628d7fe05

8 years agoMerge "Stop populating irreducible loop at header"
David Brazdil [Fri, 6 May 2016 10:47:18 +0000 (10:47 +0000)]
Merge "Stop populating irreducible loop at header"

8 years agoMerge "Fix test with libarttest.so."
Nicolas Geoffray [Fri, 6 May 2016 09:10:16 +0000 (09:10 +0000)]
Merge "Fix test with libarttest.so."

8 years agoFix test with libarttest.so.
Nicolas Geoffray [Fri, 6 May 2016 09:08:36 +0000 (10:08 +0100)]
Fix test with libarttest.so.

We used to always skip it as kIsDebugBuild was true for
libarttest.so and libarttestd.so.

Change-Id: I1a5efbba8c2f9d63af824ed727154794aaea8d29

8 years agoMerge "Fix index checks for error strings in DexFileVerifier."
Vladimir Marko [Fri, 6 May 2016 07:58:53 +0000 (07:58 +0000)]
Merge "Fix index checks for error strings in DexFileVerifier."

8 years agoMerge "Add braces per the coding convention"
David Sehr [Fri, 6 May 2016 04:56:05 +0000 (04:56 +0000)]
Merge "Add braces per the coding convention"

8 years agoMerge "Remove double unloading hack"
Mathieu Chartier [Fri, 6 May 2016 02:59:01 +0000 (02:59 +0000)]
Merge "Remove double unloading hack"

8 years agoRemove double unloading hack
Mathieu Chartier [Fri, 6 May 2016 02:55:03 +0000 (19:55 -0700)]
Remove double unloading hack

No longer required since we unload native libraries.

Bug: 28406866
Change-Id: I9ae39b4f2ef0bf6d70c5b7df3e275d36b01ca472

8 years agoAdd braces per the coding convention
David Sehr [Thu, 5 May 2016 20:39:43 +0000 (13:39 -0700)]
Add braces per the coding convention

Bug: 28599906
Change-Id: Ie2cb4f6865b7756ceaf65c400a4090fc9423232a
(cherry picked from commit 64b0f0bf5b03fc53282f61c1d2d2dc6b8c7e7a3e)

8 years agoMerge "Fix libarttest to be non debug"
Mathieu Chartier [Fri, 6 May 2016 00:18:13 +0000 (00:18 +0000)]
Merge "Fix libarttest to be non debug"

8 years agoFix libarttest to be non debug
Mathieu Chartier [Thu, 5 May 2016 22:31:12 +0000 (15:31 -0700)]
Fix libarttest to be non debug

Previously both libarttest and libarttestd had debug enabled. This
made it hard to know which one was loaded (couldn't look at
kIsDebugBuild).

Fixes test 136 with ART_TEST_RUN_TEST_NDEBUG configuration.

Bug: 28406866

Change-Id: I92983f71374b211f96f5b346fec326ea8543f876

8 years agoMake run-test default to optimizing compiler.
Alex Light [Thu, 5 May 2016 22:45:29 +0000 (15:45 -0700)]
Make run-test default to optimizing compiler.

Quick compiler is dead.

Change-Id: I88d83a9935a81a38ca2a02bd3168c35b81a791da

8 years agoMerge "Limit profman log spam with time threshold"
David Sehr [Thu, 5 May 2016 22:35:55 +0000 (22:35 +0000)]
Merge "Limit profman log spam with time threshold"

8 years agoMerge "Fix assert failure in interpreter after deoptimization."
Mingyao Yang [Thu, 5 May 2016 20:52:29 +0000 (20:52 +0000)]
Merge "Fix assert failure in interpreter after deoptimization."

8 years agoLimit profman log spam with time threshold
David Sehr [Thu, 5 May 2016 16:02:38 +0000 (09:02 -0700)]
Limit profman log spam with time threshold

Bug: 28599906
Change-Id: Ibe1001da94c7916761c8f3b4b5dbacd8cf3809a7
(cherry picked from commit 305ed710a8ea732e59bdc782121dea3389adc357)

8 years agoMerge changes I8fab78bc,I8aae0d75
Mathieu Chartier [Thu, 5 May 2016 18:56:14 +0000 (18:56 +0000)]
Merge changes I8fab78bc,I8aae0d75

* changes:
  Change test 136 to use dlopen
  Revert "Revert "(dl)Close native libraries on unload""

8 years agoFix assert failure in interpreter after deoptimization.
Mingyao Yang [Thu, 28 Apr 2016 23:23:01 +0000 (16:23 -0700)]
Fix assert failure in interpreter after deoptimization.

There is code that does
  new String(chararr, 0, chararr_count);
which under debuggable turns into a call into pNewEmptyString() plus a
call into pNewStringFromChars_CII().
Even though we currently don't patch return pc in a runtime method,
calling into pNewEmptyString() is special since it's hacked such
that it's acting as if the caller calls into the java method
StringFactory.newEmptyString() directly. So deoptimization can now
happen at the NewEmptyString site and the assert is triggered since
it's a new instance instead of an invoke instruction.

The fix relaxes the assert to allow the special case.

Bug: 28555675
Change-Id: Idbb159b5aa450df2344cd93ae74fef5f55bdc534

8 years agoChange test 136 to use dlopen
Mathieu Chartier [Thu, 5 May 2016 18:09:58 +0000 (11:09 -0700)]
Change test 136 to use dlopen

dlopen self to prevent the native libary being closed from
DestroyJavaVM. We need this since it is the library currently
executing code.

Bug: 28406866

Change-Id: I8fab78bc7c27f5c03a6670d20d5cf8e44295d5e2

8 years agoRevert "Revert "(dl)Close native libraries on unload""
Mathieu Chartier [Thu, 5 May 2016 18:09:37 +0000 (11:09 -0700)]
Revert "Revert "(dl)Close native libraries on unload""

This reverts commit 0cf0dbd5f8ae5a1ccd51b45c4d692eedb3ff8a2b.

8 years agoStop populating irreducible loop at header
David Brazdil [Thu, 5 May 2016 10:27:03 +0000 (11:27 +0100)]
Stop populating irreducible loop at header

Recent CL modified the (previously exponential) algorithm for
populating irreducible loops so as to not visit blocks multiple times.
However, the new condition for an early exit did not take into account
that it is not necessary to visit predecessors of the loop header.

The algorithm remains correct but does unnecessary work.

Bug: 27856014
Change-Id: If72f8be82e79838f0dd9678082a3bbaabb51e43b

8 years agoMerge "Remove -XOatFileManagerCompilerFilter argument."
Richard Uhler [Thu, 5 May 2016 15:26:21 +0000 (15:26 +0000)]
Merge "Remove -XOatFileManagerCompilerFilter argument."

8 years agoFix ProtoId ordering check in DexFileVerifier.
Vladimir Marko [Tue, 3 May 2016 16:17:50 +0000 (17:17 +0100)]
Fix ProtoId ordering check in DexFileVerifier.

The code previously checked for kNoDexIndex16 as the type
list terminator. This is incorrect as we should not actually
see the kNoDexIndex16 in type lists in supported dex files.

To make sure that we don't see kNoDexIndex16, check the size
of the arrays with documented limits, i.e. type-ids and
proto-ids, see dex_file.h. In the ProtoId ordering check,
DCHECK() that we don't encounter kNoDexIndex16 and verify
that the previous list is not longer if the current list's
elements match.

Bug: 28580925
Change-Id: I7b17ce54b0047d97e13be88377676b1b7c713ae1

8 years agoFix index checks for error strings in DexFileVerifier.
Vladimir Marko [Tue, 3 May 2016 15:31:52 +0000 (16:31 +0100)]
Fix index checks for error strings in DexFileVerifier.

Bug: 28552165
Change-Id: I5b352536b746ec5bd48daa5c693d62d9fbc0b21c

8 years agoMerge "Patch for compiling art to run on linux target"
Roland Levillain [Thu, 5 May 2016 10:54:34 +0000 (10:54 +0000)]
Merge "Patch for compiling art to run on linux target"

8 years agoRelax the DCHECK in load store elimination.
Nicolas Geoffray [Wed, 4 May 2016 13:00:12 +0000 (14:00 +0100)]
Relax the DCHECK in load store elimination.

The DCHECK was too strong, as we could come from a field or array
get on null, instead of null directly.

bug:27831001

Change-Id: I24b6a0b3c92467aff81aaeaa22402743e9014d97

8 years agoMerge "Revert "(dl)Close native libraries on unload""
Nicolas Geoffray [Thu, 5 May 2016 08:02:38 +0000 (08:02 +0000)]
Merge "Revert "(dl)Close native libraries on unload""

8 years agoRevert "(dl)Close native libraries on unload"
Nicolas Geoffray [Thu, 5 May 2016 08:02:17 +0000 (08:02 +0000)]
Revert "(dl)Close native libraries on unload"

Failures on test 136.

Bug: http://b/28406866

This reverts commit 2eb3ba9fcc120b74bdf9f61342347379223973f3.

Change-Id: Ic70aceb0831256b1e12730e5508e86e6fed8cb42

8 years agoMerge "(dl)Close native libraries on unload"
Treehugger Robot [Wed, 4 May 2016 23:38:54 +0000 (23:38 +0000)]
Merge "(dl)Close native libraries on unload"

8 years agoMerge "Exploit NE/EQ tests on array length in BCE."
Aart Bik [Wed, 4 May 2016 22:55:43 +0000 (22:55 +0000)]
Merge "Exploit NE/EQ tests on array length in BCE."

8 years ago(dl)Close native libraries on unload
Dimitry Ivanov [Tue, 3 May 2016 22:05:41 +0000 (15:05 -0700)]
(dl)Close native libraries on unload

Dlclose native libraries when VM unloads a classloader. This
change is made to avoid leakage of adress space and RSS for
mapped but unreachable native libraries.

Bug: http://b/28406866
Change-Id: Iccaa87210908872c2013506d8a310955c1e3d888
(cherry picked from commit 35f01195c4cf6e3c6fbb8b51f5a41b26132b4bdd)

8 years agoExploit NE/EQ tests on array length in BCE.
Aart Bik [Wed, 4 May 2016 21:00:55 +0000 (14:00 -0700)]
Exploit NE/EQ tests on array length in BCE.

BUG=28585870

Change-Id: I382ffaf80dfb861f66eb0bfb6508e7d946a07e14

8 years agoMerge "Update comment in class_linker.cc"
Treehugger Robot [Wed, 4 May 2016 17:40:25 +0000 (17:40 +0000)]
Merge "Update comment in class_linker.cc"

8 years agoUpdate comment in class_linker.cc
Alex Light [Wed, 4 May 2016 16:23:09 +0000 (09:23 -0700)]
Update comment in class_linker.cc

Be more clear about what is meant by 'corruption'.

Change-Id: I54f11c8c1ff11328f2a63382fc570b213a4d3a3e

8 years agoMerge "Do not look at dead phis during SsaRedundantPhiElimination."
Treehugger Robot [Wed, 4 May 2016 12:59:07 +0000 (12:59 +0000)]
Merge "Do not look at dead phis during SsaRedundantPhiElimination."

8 years agoDo not look at dead phis during SsaRedundantPhiElimination.
Nicolas Geoffray [Wed, 4 May 2016 11:05:56 +0000 (12:05 +0100)]
Do not look at dead phis during SsaRedundantPhiElimination.

Otherwise, we may replace a dead loop phi with its incoming input.
This broke an assumption during liveness analysis in the presence
of irreducible loops.

bug:28256552
Change-Id: Ia9e82026555e6b7f6a2cd37df4b765cd3684079d

8 years agoMerge "Check if a class is verified before visiting profiling info."
Treehugger Robot [Wed, 4 May 2016 10:08:07 +0000 (10:08 +0000)]
Merge "Check if a class is verified before visiting profiling info."

8 years agoMerge "ARM64: Add new String.compareTo intrinsic."
Vladimir Marko [Wed, 4 May 2016 09:34:37 +0000 (09:34 +0000)]
Merge "ARM64: Add new String.compareTo intrinsic."

8 years agoCheck if a class is verified before visiting profiling info.
Nicolas Geoffray [Wed, 4 May 2016 08:51:24 +0000 (09:51 +0100)]
Check if a class is verified before visiting profiling info.

The call to IsNative expects non-retired classes, and we know
we don't have any profiling info for non-verified classes anyway.

bug:28542527
Change-Id: I5bb9528a8d357bc8940c2190e2cde33a13df3e8d

8 years agoMerge "Put a handle on the String object."
Nicolas Geoffray [Wed, 4 May 2016 08:42:38 +0000 (08:42 +0000)]
Merge "Put a handle on the String object."

8 years agoMerge "Blacklist test."
Nicolas Geoffray [Wed, 4 May 2016 08:01:52 +0000 (08:01 +0000)]
Merge "Blacklist test."

8 years agoBlacklist test.
Nicolas Geoffray [Wed, 4 May 2016 08:00:56 +0000 (09:00 +0100)]
Blacklist test.

bug:28574453
Change-Id: I8afd2b824d302114b259e45164ddee3519c10a6e

8 years agoMerge "ART: Dump more OatDexFile data in oatdump"
Treehugger Robot [Wed, 4 May 2016 03:13:52 +0000 (03:13 +0000)]
Merge "ART: Dump more OatDexFile data in oatdump"

8 years agoART: Dump more OatDexFile data in oatdump
Andreas Gampe [Sat, 30 Apr 2016 00:52:07 +0000 (17:52 -0700)]
ART: Dump more OatDexFile data in oatdump

Add some stats about the enclosed dex file and type table when
dumping an oat file.

Bug: 28251566

(cherry picked from commit 00bb716039d23e02797a3858fcdb0380a9bb8855)

Change-Id: I80c14e85d68cd1e3e4c64b7b9d86059d5ac8a6ad

8 years agoMerge "Make test for app-image loading."
Treehugger Robot [Wed, 4 May 2016 00:27:01 +0000 (00:27 +0000)]
Merge "Make test for app-image loading."

8 years agoMake test for app-image loading.
Alex Light [Tue, 3 May 2016 22:01:06 +0000 (15:01 -0700)]
Make test for app-image loading.

Bug: 26882072

Change-Id: I40a45e7944aec3a5ee28ef3d47e9881f61a7c9e6

8 years agoMerge "ARM(64): Implement the isInfinite intrinsics"
Aart Bik [Tue, 3 May 2016 20:08:10 +0000 (20:08 +0000)]
Merge "ARM(64): Implement the isInfinite intrinsics"