OSDN Git Service

android-x86/art.git
8 years agoMerge "Clean up String.indexOf() intrinsics."
Vladimir Marko [Tue, 17 May 2016 17:05:15 +0000 (17:05 +0000)]
Merge "Clean up String.indexOf() intrinsics."

8 years agoMerge "Revert "Reject classes inheriting from themselves directly or transitively.""
Roland Levillain [Tue, 17 May 2016 15:50:29 +0000 (15:50 +0000)]
Merge "Revert "Reject classes inheriting from themselves directly or transitively.""

8 years agoRevert "Reject classes inheriting from themselves directly or transitively."
Roland Levillain [Tue, 17 May 2016 15:50:00 +0000 (15:50 +0000)]
Revert "Reject classes inheriting from themselves directly or transitively."

This reverts commit 498bb81f8725e2cf8f5ce1aa6b49ab5a9c5bb4c9.

Reverting not to break apps that do not follow the class
definition order rules.

Bug: 28797012
Bug: 28685551
Bug: 27682580
Change-Id: I2491b5aefe3ca8a364a05f7dfbc899c5a5757712

8 years agoMerge "Revert "Reject classes implementing themselves as interface directly or transi...
Roland Levillain [Tue, 17 May 2016 15:48:48 +0000 (15:48 +0000)]
Merge "Revert "Reject classes implementing themselves as interface directly or transitively.""

8 years agoRevert "Reject classes implementing themselves as interface directly or transitively."
Roland Levillain [Tue, 17 May 2016 15:48:10 +0000 (15:48 +0000)]
Revert "Reject classes implementing themselves as interface directly or transitively."

This reverts commit 34598460015962699eb6b85b5fdb39400759280e.

Reverting not to break apps that do not follow the class
definition order rules.

Bug: 28797012
Change-Id: I77844a77f2d070563294fa0b01f8f68383c93fb8

8 years agoClean up String.indexOf() intrinsics.
Vladimir Marko [Tue, 17 May 2016 15:10:20 +0000 (16:10 +0100)]
Clean up String.indexOf() intrinsics.

Additional cleanup after
    https://android-review.googlesource.com/223260

Bug: 28330359
Change-Id: I88def196babec70123896ef581ec8d61bb1b9a9a

8 years agoMerge "Adjust ProfileSaver strategy"
Treehugger Robot [Tue, 17 May 2016 01:31:48 +0000 (01:31 +0000)]
Merge "Adjust ProfileSaver strategy"

8 years agoMerge "Visit IMT of all classes during image writing"
Mathieu Chartier [Tue, 17 May 2016 01:23:31 +0000 (01:23 +0000)]
Merge "Visit IMT of all classes during image writing"

8 years agoVisit IMT of all classes during image writing
Mathieu Chartier [Mon, 16 May 2016 21:58:01 +0000 (14:58 -0700)]
Visit IMT of all classes during image writing

We still need to visit the IMT for classes that does not have any
methods. It is required to visit the IMT of every class to assign
image offsets for the conflict table methods.

Added regression test.

Bug: 28707801

(cherry picked from commit 54689b7d5568dcf01ff42d69435d0af7ae4e4d8e)

Change-Id: I4806685c32df7f2707f6018e21a489bfd48af6f7

8 years agoAdjust ProfileSaver strategy
Calin Juravle [Fri, 29 Apr 2016 15:44:11 +0000 (16:44 +0100)]
Adjust ProfileSaver strategy

Change to a notification based strategy (instead of polling):
- the JIT notifies the ProfileSaver everytime it attempts a compilation
or generate (in a task) a ProfileInfo object for the method
- once a certain number of hot methods notification are received,
ProfileSaver wakes up the thread to do the analysis
- a wake up does not equal to I/O since the during processing we might
realized that's actually not enough new data.
- ProfileSaver throtles the request and ensures it doesn't do the
processing more often than kMinSavePeriodNs.

The new strategy avoids waking the thread unnecessary during extended
idle periods when we don't JIT.

Bug: 26815940

(cherry picked from commit 5fbb0fe0625a1f76aa33cd78ccf1a17b00d8f6d1)

Change-Id: Ifbac3a53c025e00a3faab6784bbfa679c6b42acb

8 years agoMerge "SafeStack-friendly stack protection in ART."
Evgenii Stepanov [Mon, 16 May 2016 20:17:17 +0000 (20:17 +0000)]
Merge "SafeStack-friendly stack protection in ART."

8 years agoMerge "Make quick frames of proxy methods visited if they're constructors."
Treehugger Robot [Mon, 16 May 2016 18:19:11 +0000 (18:19 +0000)]
Merge "Make quick frames of proxy methods visited if they're constructors."

8 years agoSafeStack-friendly stack protection in ART.
Evgenii Stepanov [Fri, 13 May 2016 21:01:41 +0000 (14:01 -0700)]
SafeStack-friendly stack protection in ART.

This code takes an address of a stack variable to find the current
stack top. With SafeStack, such variables can be allocated on a
separate, "unsafe" stack, generating a completely bogus address.

Use __builtin_frame_address(0) instead.

Change-Id: I84fe3161bdd01cebbb4e9bebf2aca86783cc6f15

8 years agoMake quick frames of proxy methods visited if they're constructors.
Jeff Hao [Fri, 13 May 2016 21:46:28 +0000 (14:46 -0700)]
Make quick frames of proxy methods visited if they're constructors.

Also adds a test case for getting annotations during moving GC.

Bug: 28510922

(cherry-picked from commit 12c08f03f65acc1c308491fc7ab6c57f682e2f24)

Change-Id: I0d5cc9d5bb8bbff6bd6b108f7486a63402a15993

8 years agoMerge "Typos and stylistic fixes."
Treehugger Robot [Mon, 16 May 2016 15:48:49 +0000 (15:48 +0000)]
Merge "Typos and stylistic fixes."

8 years agoTypos and stylistic fixes.
Roland Levillain [Thu, 12 May 2016 15:24:36 +0000 (16:24 +0100)]
Typos and stylistic fixes.

Change-Id: I1c88af9bd1d2cac6c803c8c61088c569a3847e01

8 years agoMerge "Reject classes implementing themselves as interface directly or transitively."
Roland Levillain [Mon, 16 May 2016 14:04:38 +0000 (14:04 +0000)]
Merge "Reject classes implementing themselves as interface directly or transitively."

8 years agoMerge "Reject classes inheriting from themselves directly or transitively."
Roland Levillain [Mon, 16 May 2016 12:39:43 +0000 (12:39 +0000)]
Merge "Reject classes inheriting from themselves directly or transitively."

8 years agoReject classes implementing themselves as interface directly or transitively.
Roland Levillain [Mon, 16 May 2016 11:22:55 +0000 (12:22 +0100)]
Reject classes implementing themselves as interface directly or transitively.

Also enforce class definition ordering with respect to
implemented interfaces within a Dex file.

Change-Id: I1cb991b1a976933f952d45ed08d8a189000ae4f5

8 years agoMerge "Fix the benchmark fail by caliper's change"
Paul Duffin [Mon, 16 May 2016 10:10:34 +0000 (10:10 +0000)]
Merge "Fix the benchmark fail by caliper's change"

8 years agoMerge "Fix JNIEnv-on-wrong-thread abort message."
Treehugger Robot [Fri, 13 May 2016 20:40:06 +0000 (20:40 +0000)]
Merge "Fix JNIEnv-on-wrong-thread abort message."

8 years agoFix JNIEnv-on-wrong-thread abort message.
Daniel Erat [Wed, 11 May 2016 00:07:18 +0000 (18:07 -0600)]
Fix JNIEnv-on-wrong-thread abort message.

Update an incorrect abort message that claimed that thread A
was using the JNIEnv from thread A (when the JNIEnv was in
fact from another thread). Now, the message is e.g.

  JNI DETECTED ERROR IN APPLICATION: thread
  Thread[1,tid=628,Native,Thread*=0xb038b400,peer=0x75efc1f0,"main"]
  using JNIEnv* from thread
  Thread[6,tid=640,Runnable,Thread*=0xaa890800,peer=0x12c00ca0,"Binder:628_1"]

Change-Id: I877a78c47e88d1e8a28bade8ea40be6bed58439f

8 years agoMerge "Use _exit instead of exit for the system exit."
Hiroshi Yamauchi [Fri, 13 May 2016 18:07:16 +0000 (18:07 +0000)]
Merge "Use _exit instead of exit for the system exit."

8 years agoReject classes inheriting from themselves directly or transitively.
Roland Levillain [Thu, 12 May 2016 15:12:47 +0000 (16:12 +0100)]
Reject classes inheriting from themselves directly or transitively.

Also enforce class definition ordering with respect to super
classes within a Dex file.

Bug: 28685551
Bug: 27682580
Change-Id: If3eba782538eb4328d4b8a542236632379e7c050

8 years agoMerge "Ensure that java.lang.reflect.Field is initialized"
Przemyslaw Szczepaniak [Fri, 13 May 2016 12:26:22 +0000 (12:26 +0000)]
Merge "Ensure that java.lang.reflect.Field is initialized"

8 years agoEnsure that java.lang.reflect.Field is initialized
Przemyslaw Szczepaniak [Thu, 12 May 2016 13:55:48 +0000 (14:55 +0100)]
Ensure that java.lang.reflect.Field is initialized

Recent change in libcore (a move of clinit code
to register function for java.net.InetAddress
class) was triggering a failure in 119-noimage-patchoat
test. Failure was occurring when the test was running
without the image. This was caused by the
java.lang.reflect.Field not being initialized when
running InetAddress.<clinit>, which is a side effect
of calling JNIEnv->GetMethodId inside the libcore JNI_OnLoad.

This changes makes sure that this class is initialized
when we're running without image.

Bug: 28153851
Change-Id: I8aeb5eb312a163c452c40b851112544a8340e488

8 years agoMerge "Revert "ART: Reference.getReferent intrinsic for x86 and x86_64""
Nicolas Geoffray [Fri, 13 May 2016 09:30:18 +0000 (09:30 +0000)]
Merge "Revert "ART: Reference.getReferent intrinsic for x86 and x86_64""

8 years agoRevert "ART: Reference.getReferent intrinsic for x86 and x86_64"
Nicolas Geoffray [Fri, 13 May 2016 09:29:01 +0000 (09:29 +0000)]
Revert "ART: Reference.getReferent intrinsic for x86 and x86_64"

Fails heap poisoning configuration.

This reverts commit afdc97ebcb4e58afb7cf54d846d30314e6499d83.

Change-Id: I50e53756a2b85059b89cfb8950f8c9e2b032743c

8 years agoMerge "Fix oatdump crash on arm64/arm code. Also adds 16 bit literal information."
Aart Bik [Thu, 12 May 2016 18:53:32 +0000 (18:53 +0000)]
Merge "Fix oatdump crash on arm64/arm code. Also adds 16 bit literal information."

8 years agoMerge "Don't expect permission to open foreign dex use marks."
Treehugger Robot [Thu, 12 May 2016 17:13:48 +0000 (17:13 +0000)]
Merge "Don't expect permission to open foreign dex use marks."

8 years agoMerge "Hold a ClassLoader reference in NativeAllocationRegistry."
Richard Uhler [Thu, 12 May 2016 17:05:13 +0000 (17:05 +0000)]
Merge "Hold a ClassLoader reference in NativeAllocationRegistry."

8 years agoFix oatdump crash on arm64/arm code.
Aart Bik [Wed, 11 May 2016 17:30:47 +0000 (10:30 -0700)]
Fix oatdump crash on arm64/arm code.
Also adds 16 bit literal information.

Rationale:
When "run-away" instructions are disassembled, the literal
addresses may go out of range, causing oatdump to crash.
This CL guards memory access against the full memory range
allocated to assembly instructions and data (it is possible
but not really necessary to refine this a bit). Out of range
arguments are now displayed as (?) to denote the issue, which
is a lot nicer than crashing.

BUG=28670871

Change-Id: I51e9b6a6a99162546fe31059f14278e8980451c2

8 years agoDon't expect permission to open foreign dex use marks.
Richard Uhler [Tue, 10 May 2016 21:01:18 +0000 (14:01 -0700)]
Don't expect permission to open foreign dex use marks.

sepolicy says we can create the mark files, but open requires
additional permissions we don't need. Don't print a warning when we
aren't given those additional permissions.

Bug: 28241500

(cherry picked from commit 12e4157666bfdc2ca38f459f6447385b80c7ddff)

Change-Id: I272befdb4fa58a0adf550fde52ddab5b5f5a9fe3

8 years agoMerge "ART: Reference.getReferent intrinsic for x86 and x86_64"
Roland Levillain [Thu, 12 May 2016 15:28:38 +0000 (15:28 +0000)]
Merge "ART: Reference.getReferent intrinsic for x86 and x86_64"

8 years agoMerge "Fix another case of live_in at irreducible loop entry."
Nicolas Geoffray [Thu, 12 May 2016 07:58:53 +0000 (07:58 +0000)]
Merge "Fix another case of live_in at irreducible loop entry."

8 years agoFix another case of live_in at irreducible loop entry.
Nicolas Geoffray [Tue, 10 May 2016 13:35:34 +0000 (14:35 +0100)]
Fix another case of live_in at irreducible loop entry.

GVN was implicitly extending the liveness of an instruction across
an irreducible loop.

Fix this problem by clearing the value set at loop entries that contain
an irreducible loop.

bug:28252896

(cherry picked from commit 77ce6430af2709432b22344ed656edd8ec80581b)

Change-Id: Ie0121e83b2dfe47bcd184b90a69c0194d13fce54

8 years agoUse _exit instead of exit for the system exit.
Hiroshi Yamauchi [Thu, 12 May 2016 02:27:44 +0000 (19:27 -0700)]
Use _exit instead of exit for the system exit.

We get DCHECK failures in ~Mutex() called from an atexit handler on
System.exit() in some tests. To avoid it, use _exit instead of exit.

Bug: 28106055
Change-Id: I2a6d2ad8170327553c9c9f0049829e3fd3937180

8 years agoMerge "Add histogram for native allocations"
Mathieu Chartier [Wed, 11 May 2016 21:57:28 +0000 (21:57 +0000)]
Merge "Add histogram for native allocations"

8 years agoAdd histogram for native allocations
Mathieu Chartier [Wed, 11 May 2016 18:35:39 +0000 (11:35 -0700)]
Add histogram for native allocations

Shows up in traces.txt, sample output:
Histogram of native allocation 0:4315,131072:33,1179648:3 bucket size 131072
Histogram of native free 0:995,131072:19,1179648:2 bucket size 131072

Bug: 28680116

(cherry picked from commit 0dce75dc6945c221a054eb9c479fb60efd193719)

Change-Id: Iaa07c6b8da0d6bab64a8fd4af8a02fc0b8c70e9e

8 years agoMerge "Prevent ArtMethod clearing race"
Mathieu Chartier [Wed, 11 May 2016 20:57:07 +0000 (20:57 +0000)]
Merge "Prevent ArtMethod clearing race"

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 "Revert "Make run-test default to optimizing compiler."""
Alex Light [Wed, 11 May 2016 16:14:01 +0000 (16:14 +0000)]
Merge "Revert "Revert "Make run-test default to optimizing compiler."""

8 years agoMerge "Add cmpb instruction to x86 and x86_64 assembler"
Roland Levillain [Wed, 11 May 2016 09:33:22 +0000 (09:33 +0000)]
Merge "Add cmpb instruction to x86 and x86_64 assembler"

8 years agoMerge "Revert "Blacklist test.""
Nicolas Geoffray [Wed, 11 May 2016 07:36:05 +0000 (07:36 +0000)]
Merge "Revert "Blacklist test.""

8 years agoRevert "Blacklist test."
Nicolas Geoffray [Wed, 11 May 2016 07:35:43 +0000 (07:35 +0000)]
Revert "Blacklist test."

bug:28574453

This reverts commit e85dff7f4c4621f65153be56994b4bb4ad00190f.

Change-Id: I95218cd90d696dd1db95eda05817bdd43ccfff9e

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 agoRevert "Revert "Make run-test default to optimizing compiler.""
Alex Light [Tue, 10 May 2016 17:01:22 +0000 (10:01 -0700)]
Revert "Revert "Make run-test default to optimizing compiler.""

This reverts commit 4650c939e8590b2d421241023e359260b1b59bf1.

Change-Id: I3814c6a579d3d88222b53d7ae63a2d4b03b620a7

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 agoHold a ClassLoader reference in NativeAllocationRegistry.
Richard Uhler [Tue, 3 May 2016 20:05:50 +0000 (13:05 -0700)]
Hold a ClassLoader reference in NativeAllocationRegistry.

So that the native library isn't unloaded before we have a chance to
call the freeFunction.

Bug: 28406866

(cherry picked from commit 7d3c7390a8cbeff12fe790e5d12da6e07cf8c298)

Change-Id: I38edb9ba6855ef98743001e4bbf4fd80fb27873d

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 agoART: Reference.getReferent intrinsic for x86 and x86_64
Serguei Katkov [Thu, 5 May 2016 07:42:59 +0000 (13:42 +0600)]
ART: Reference.getReferent intrinsic for x86 and x86_64

Change-Id: I7a7ac9244847dd80d9fa4e4b5ebc5bf451c628ff
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
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"