OSDN Git Service

android-x86/art.git
8 years agoMerge "Fix InsertDexFileInToClassLoader to handle null class loaders"
Mathieu Chartier [Wed, 13 Apr 2016 01:19:08 +0000 (01:19 +0000)]
Merge "Fix InsertDexFileInToClassLoader to handle null class loaders"

8 years agoFix InsertDexFileInToClassLoader to handle null class loaders
Mathieu Chartier [Tue, 12 Apr 2016 23:54:48 +0000 (16:54 -0700)]
Fix InsertDexFileInToClassLoader to handle null class loaders

Maybe used by legacy apps. This functionality is planned for
deprecation.

Bug: 27954959

(cherry picked from commit f2bf9d640e37b72be8b4f6016d4aa95a0e27b7b4)

Change-Id: I1ae2cf1e33f2f1b237a41c8cc50d2a814a52a95a

8 years agoMerge "ART: Flag to fail thread creation"
Andreas Gampe [Tue, 12 Apr 2016 22:27:18 +0000 (22:27 +0000)]
Merge "ART: Flag to fail thread creation"

8 years agoART: Flag to fail thread creation
Andreas Gampe [Mon, 11 Apr 2016 15:42:26 +0000 (08:42 -0700)]
ART: Flag to fail thread creation

Add a flag to mark when the zygote is not allowed to create threads.

Bug: 27248115
Bug: 28149511

(cherry picked from commit 415d8070e37c20dfb7e6dc37e74fdb5fffc2022e)

Change-Id: I1dc3620d9e7d0054c672b993d89459fc4b353dfc

8 years agoMerge "ART: Add Makefile target for boot image"
Andreas Gampe [Tue, 12 Apr 2016 20:46:41 +0000 (20:46 +0000)]
Merge "ART: Add Makefile target for boot image"

8 years agoMerge "Assembly region TLAB allocation fast path for arm64."
Hiroshi Yamauchi [Tue, 12 Apr 2016 17:33:34 +0000 (17:33 +0000)]
Merge "Assembly region TLAB allocation fast path for arm64."

8 years agoART: Add Makefile target for boot image
Andreas Gampe [Mon, 11 Apr 2016 18:57:18 +0000 (11:57 -0700)]
ART: Add Makefile target for boot image

Add a phony Makefile target that depends on the dexopted boot image.
This allows to test out changes easily, for example, for compile-time
initialization:

 m art-boot-image ART_BOOT_IMAGE_EXTRA_ARGS=--dump-init-failures=fails.txt

Bug: 27265238
Change-Id: I9d54c562a2e623b23b7c1dea9cdbe303786c95dd

8 years agoMerge "Small changes in ARM and x86-64 SystemArrayCopy intrinsics."
Roland Levillain [Tue, 12 Apr 2016 16:18:08 +0000 (16:18 +0000)]
Merge "Small changes in ARM and x86-64 SystemArrayCopy intrinsics."

8 years agoSmall changes in ARM and x86-64 SystemArrayCopy intrinsics.
Roland Levillain [Tue, 12 Apr 2016 14:42:57 +0000 (15:42 +0100)]
Small changes in ARM and x86-64 SystemArrayCopy intrinsics.

Have these intrinsics share a more uniform style with the
ARM64 SystemArrayCopy intrinsic.

Also make some changes/improvements in:
- art::IntrinsicOptimizations
- art::arm64::GenSystemArrayCopyAddresses

Change-Id: Ieeb224795229580f8e5f7219c586d04786d8c705

8 years agoMerge "ART: Speed up HGraph::PopulateIrreducibleRecursive"
David Brazdil [Tue, 12 Apr 2016 14:19:33 +0000 (14:19 +0000)]
Merge "ART: Speed up HGraph::PopulateIrreducibleRecursive"

8 years agoART: Speed up HGraph::PopulateIrreducibleRecursive
David Brazdil [Tue, 5 Apr 2016 16:15:19 +0000 (17:15 +0100)]
ART: Speed up HGraph::PopulateIrreducibleRecursive

Populating an irreducible loop can potentially traverse all possible
paths through the HGraph, leading to an exponential algorithm.
This patch adds a bit vector of nodes whose membership in the loop
has been decided and need not be revisited again.

Bug: 27856014
Change-Id: I3696f08c846e6f40e5de44cb771811bac7e3e08a

8 years agoMerge "Remove recursive ALWAYS_INLINE"
Vladimir Marko [Tue, 12 Apr 2016 13:58:51 +0000 (13:58 +0000)]
Merge "Remove recursive ALWAYS_INLINE"

8 years agoMerge "unstarted_runtime: add cutout for Math.floor"
Sergio Giro [Tue, 12 Apr 2016 13:39:24 +0000 (13:39 +0000)]
Merge "unstarted_runtime: add cutout for Math.floor"

8 years agounstarted_runtime: add cutout for Math.floor
Sergio Giro [Mon, 11 Apr 2016 19:49:20 +0000 (20:49 +0100)]
unstarted_runtime: add cutout for Math.floor

Needed in order to make BouncyCastleProvider initializable in
compile time

(cherry picked from commit a8908ef14cf2d2e0d05e41e319da5d6909325ae2)
Bug: 28108158

Change-Id: Id6b4e3d4dde45354562603f41134d8d21da2b423

8 years agoMerge "Revert "Update expectations for 031-class-attributes.""
Narayan Kamath [Tue, 12 Apr 2016 12:52:34 +0000 (12:52 +0000)]
Merge "Revert "Update expectations for 031-class-attributes.""

8 years agoRevert "Update expectations for 031-class-attributes."
Narayan Kamath [Tue, 12 Apr 2016 12:38:09 +0000 (13:38 +0100)]
Revert "Update expectations for 031-class-attributes."

This reverts commit 32580ebd54bfeef62d5769439d336ca33f5592b0.

The original commit tracked OpenJDK behaviour, which we've decided
to revert because several apps depend on the value of Package.toString.

bug: 28057303

8 years agoRemove recursive ALWAYS_INLINE
Goran Jakovljevic [Tue, 12 Apr 2016 11:11:16 +0000 (13:11 +0200)]
Remove recursive ALWAYS_INLINE

GCC (mips32 Buildbot) is complaining about recursive inlining.

Clean up after
    https://android-review.googlesource.com/#/c/214918/.

Change-Id: I221c53c32403e5e433e30cfee7b2ae36680f39e6

8 years agoMerge changes from topic 'image_layout'
Mathieu Chartier [Tue, 12 Apr 2016 02:23:10 +0000 (02:23 +0000)]
Merge changes from topic 'image_layout'

* changes:
  Fix relocate in place to handle arbitrary app image layout
  Revert "Revert "Reduce dirty image pages by improving binning""
  Revert "Reduce dirty image pages by improving binning"
  Reduce dirty image pages by improving binning

8 years agoFix relocate in place to handle arbitrary app image layout
Mathieu Chartier [Mon, 11 Apr 2016 19:03:48 +0000 (12:03 -0700)]
Fix relocate in place to handle arbitrary app image layout

Previously the relocation had bugs where it would not work correctly
if the iftable was after the class since the object arrays would not
yet be updated to be the relocated address when we went through them
to fixup the ArtMethod pointers.

Also fixes a bug where the superclass of a class could not be
updated when we walk through it for visiting instance fields of
large objects.

Changed RelocateInPlace to use a simplier single pass approach.

Bug: 27906566
Bug: 22858531

(cherry picked from commit 564289c753cbe3521f9523b350bd713c1fe2fbd4)

Change-Id: I97affab6ff353dfdc4d1bf31df69ceb96a0c7a1a

8 years agoRevert "Revert "Reduce dirty image pages by improving binning""
Mathieu Chartier [Sat, 9 Apr 2016 02:01:05 +0000 (19:01 -0700)]
Revert "Revert "Reduce dirty image pages by improving binning""

This reverts commit 8ace610a222892f7b700e4f95e50fa6315ab85c0.

(cherry picked from commit 80c563ba136fd8da8791cf0f1a5f8f7026816ead)

Change-Id: I5b312f41d8b96eb189ea8b9d3a3ab861c5c9d515

8 years agoRevert "Reduce dirty image pages by improving binning"
Mathieu Chartier [Sat, 9 Apr 2016 01:54:36 +0000 (18:54 -0700)]
Revert "Reduce dirty image pages by improving binning"

This reverts commit 794bff5f622c79fd7bd9899e700cf052a375c675.

(cherry picked from commit 8ace610a222892f7b700e4f95e50fa6315ab85c0)

Change-Id: Id53d64a04aa8766a2cb283a2f7b8354590213b13

8 years agoReduce dirty image pages by improving binning
Mathieu Chartier [Thu, 7 Apr 2016 21:16:26 +0000 (14:16 -0700)]
Reduce dirty image pages by improving binning

Change ordering from dirty to less dirty since ArtFields are clean
and they are last. Add separate binning for DexCache and instances
of java lang object (probably a lock object).

Business card .art RAM (on shamu):
              PSS     Private Dirty
.art mmap     1011      600
.art mmap      990      560

Bug: 27906566

(cherry picked from commit 794bff5f622c79fd7bd9899e700cf052a375c675)

Change-Id: I31c9ff41c3d713fc3b14573c2b731325ac6f366f

8 years agoAssembly region TLAB allocation fast path for arm64.
Hiroshi Yamauchi [Fri, 8 Apr 2016 00:18:24 +0000 (17:18 -0700)]
Assembly region TLAB allocation fast path for arm64.

This is for the CC collector.

Share the common fast path code with the tlab fast path code.

Speedup (on N9):
    BinaryTrees:  1235 -> 443 ms (-64%)
    MemAllocTest: 1647 -> 766 ms (-53%)

Bug: 9986565
Bug: 12687968
Change-Id: I67049cc0b4d6508934f07d039d421ee162b330bf

8 years agoMerge "Don't abort during app image loading with no boot image"
Mathieu Chartier [Mon, 11 Apr 2016 21:12:11 +0000 (21:12 +0000)]
Merge "Don't abort during app image loading with no boot image"

8 years agoDon't abort during app image loading with no boot image
Mathieu Chartier [Mon, 11 Apr 2016 20:56:45 +0000 (13:56 -0700)]
Don't abort during app image loading with no boot image

Fail gracefully instead. Fixes test 119.

Bug: 22858531
Change-Id: If17acf5365f8a8fc0a2f6445c558960c62c8f948

8 years agoMerge "ART: Make mterp jit profiling race tolerant"
Calin Juravle [Mon, 11 Apr 2016 17:32:24 +0000 (17:32 +0000)]
Merge "ART:  Make mterp jit profiling race tolerant"

8 years agoART: Make mterp jit profiling race tolerant
buzbee [Mon, 11 Apr 2016 14:48:18 +0000 (07:48 -0700)]
ART:  Make mterp jit profiling race tolerant

The JIT profiling mechanism is intentionally non-precise to minimize
performance overhead.  In general, this is not a problem.   However,
the on-stack replacement mechanism assumes an order of method
compilation than can sometimes be violated if conditions are just
right.

This change allows compilation requests that were dropped due to
a race condition to eventually be re-issued.  It does this by allowing
the 16-bit hotness counter to wrap around.

Change-Id: I2ac8056af8c4f7f8cef3f2c3db70b0394c26a566

8 years agoMerge "MIPS: Improving art_quick_imt_conflict_trampoline"
Nicolas Geoffray [Mon, 11 Apr 2016 15:45:57 +0000 (15:45 +0000)]
Merge "MIPS: Improving art_quick_imt_conflict_trampoline"

8 years agoMerge "ART: Change prebuild run-test setup"
Andreas Gampe [Mon, 11 Apr 2016 15:29:56 +0000 (15:29 +0000)]
Merge "ART: Change prebuild run-test setup"

8 years agoMerge "Oatdump: Smarter StackMap lookup to improve performance."
Vladimir Marko [Mon, 11 Apr 2016 14:18:05 +0000 (14:18 +0000)]
Merge "Oatdump: Smarter StackMap lookup to improve performance."

8 years agoMerge "Revert "Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64...
Calin Juravle [Mon, 11 Apr 2016 13:56:56 +0000 (13:56 +0000)]
Merge "Revert "Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp"""""

8 years agoOatdump: Smarter StackMap lookup to improve performance.
Vladimir Marko [Fri, 8 Apr 2016 10:18:25 +0000 (11:18 +0100)]
Oatdump: Smarter StackMap lookup to improve performance.

Shaves off roughly 10% from the oatdump_test time.

Bug: 27824283
Change-Id: I6c2fd3b1db2723871641d43aeb543581d405cfcb

8 years agoMerge "Implement on-stack replacement for MIPS32 and MIPS64"
Nicolas Geoffray [Mon, 11 Apr 2016 08:24:18 +0000 (08:24 +0000)]
Merge "Implement on-stack replacement for MIPS32 and MIPS64"

8 years agoART: Change prebuild run-test setup
Andreas Gampe [Wed, 23 Mar 2016 17:54:21 +0000 (10:54 -0700)]
ART: Change prebuild run-test setup

Prebuild was meant to check whether the runtime correctly loads
pre-existing oat files. With the advent of patching images, this
has actually been reduced to "does the runtime run self-patchoat"
correctly.

We cannot produce a prebuilt oat file that does not have to be
patched, as the runtime will patch the image when it starts.

There are two options to make this more meaningful:

* In the prebuild setting, first run patchoat to explicitly create
  a valid dalvik-cache.

* Change the dex2oat output to be the odex file, which can be
  patched like a regular file.

This change shows the latter approach.

Change-Id: I5234e10d78f7ea6c7ad8598db67d3fad8ba42b67

8 years agoMerge "Make sure non-fatal errors aren't printed."
Alex Light [Fri, 8 Apr 2016 18:42:03 +0000 (18:42 +0000)]
Merge "Make sure non-fatal errors aren't printed."

8 years agoMerge "ART: Refactor imgdiag internals"
Andreas Gampe [Fri, 8 Apr 2016 18:33:25 +0000 (18:33 +0000)]
Merge "ART: Refactor imgdiag internals"

8 years agoMerge changes from topic 'rr_barrier'
Mathieu Chartier [Fri, 8 Apr 2016 17:50:05 +0000 (17:50 +0000)]
Merge changes from topic 'rr_barrier'

* changes:
  Store precice set of which constructors require barriers
  Revert "Revert "Check if we require barrier if we did not resolve classes""
  Revert "Revert "Change RequiresConstructorBarrier default to yes""

8 years agoStore precice set of which constructors require barriers
Mathieu Chartier [Thu, 7 Apr 2016 20:19:19 +0000 (13:19 -0700)]
Store precice set of which constructors require barriers

Fixes bugs where things in the boot image might not have been
calculated even though resolved_clases was true. This only occured
for app and test compiles though.

Fixes test 476-checker-ctor-memory-barrier which was failing due to
inlining something in the boot class path and getting a unexpected
barrier since the barrier defaults to enabled.

No measurable increase in RAM usage.

Bug: 28005874

Change-Id: I4a417819aa129c95f4a83c38df1a66eb77824ea9

8 years agoMerge "ART: Fix race in on-stack replacement"
Bill Buzbee [Fri, 8 Apr 2016 17:28:49 +0000 (17:28 +0000)]
Merge "ART: Fix race in on-stack replacement"

8 years agoMake sure non-fatal errors aren't printed.
Alex Light [Fri, 8 Apr 2016 16:44:54 +0000 (09:44 -0700)]
Make sure non-fatal errors aren't printed.

During run-test setup `du` can print error messages if the folder it
is running on is modified during its execution. We silence these error
messages since they shouldn't affect the validity of the test.

Change-Id: I9f59e39c2a346414f025ce1fa79b453329080d30

8 years agoART: Fix race in on-stack replacement
buzbee [Thu, 7 Apr 2016 21:42:47 +0000 (14:42 -0700)]
ART: Fix race in on-stack replacement

The expected sequence of events for on-stack replacement is:

   1. Method goes warm, triggering enhanced profiling
   2. Method goes hot, triggering method compilation
   3. Method goes really hot, triggering an osr method compilation.
   4. Interpreter polls for the existence of an osr entry point,
      and transitons to compiled code if found.

We have a race problem if #2 and #3 happen closely together, and
the osr method compilation begins before the regular method
compilation.  In that case, the jit sees that the method is
already being compiled (the osr method - but it does not
distinguish the two), and discards the normal compilation request.
So, the osr version is compiled and the normal version is discarded.
In #4, the MaybeDoOnStackReplacement() check assumes that a normal
version of the compiled method must exist before doing an on-stack
replacement, so it keeps returning false.

This is why we were seeing sporadic timeout failures of
570-checker-osr when the mterp fast branch profiling was
introduced.  The branch profiling performance enhancements
greatly reduced the time between #2 and #3, increasing the liklihood
of losing the race.  Further, the new code clamped hotness to avoid
wrap-around.  The race existed (and likely occurred) in the previous
version, but because hotness counters were allowed to overflow and
wrap around you'd eventually hit the threshold a second time and
try again - masking the problem.

Tip 'o the hat to Serguei Katkov for identifying the problem.

A possible solution (taken in this CL) is to differentiate osr
compilations from normal method compilations.

Bug: 27939339
Change-Id: I71044516b35dc69de9fc2d2a445e33809ac650ed

8 years agoRevert "Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""""
Bill Buzbee [Mon, 4 Apr 2016 16:59:29 +0000 (16:59 +0000)]
Revert "Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""""

Bug: 28081559

This reverts commit 961ea9fe42edcc2c57469bf451d1ca421da5cd59.

Change-Id: I98a5bb8112646706ae7bd73bf6393cb956466be3

8 years agoMerge "Ignore libcore.java.lang.ThreadTest failures on device."
Roland Levillain [Fri, 8 Apr 2016 16:01:18 +0000 (16:01 +0000)]
Merge "Ignore libcore.java.lang.ThreadTest failures on device."

8 years agoIgnore libcore.java.lang.ThreadTest failures on device.
Roland Levillain [Fri, 8 Apr 2016 15:04:11 +0000 (16:04 +0100)]
Ignore libcore.java.lang.ThreadTest failures on device.

Since https://android-review.googlesource.com/#/c/209427
has been merged, libcore.java.lang.ThreadTest tests are
failing with this error on ARM64:

  java.lang.UnsatisfiedLinkError: dlopen failed: library "libnativehelper_compat_libc++.so" not found
      at java.lang.Runtime.loadLibrary0(Runtime.java:977)
      at java.lang.System.loadLibrary(System.java:1628)
      at libcore.java.lang.ThreadTest.<clinit>(ThreadTest.java:26)

Ignore those failures for now to make the build turn green
again, while we investigate.

Bug: 28082914
Change-Id: Ia8c3c776c99aace06701479d1440c828d39cbec3

8 years agoMerge "Fix combined checksum calculation to use isa."
Jeff Hao [Fri, 8 Apr 2016 03:16:37 +0000 (03:16 +0000)]
Merge "Fix combined checksum calculation to use isa."

8 years agoMerge "Combine checksum of all boot images."
Jeff Hao [Fri, 8 Apr 2016 03:16:24 +0000 (03:16 +0000)]
Merge "Combine checksum of all boot images."

8 years agoFix combined checksum calculation to use isa.
Jeff Hao [Fri, 8 Apr 2016 02:46:31 +0000 (19:46 -0700)]
Fix combined checksum calculation to use isa.

Bug: 28054110

(cherry-picked from commit 8bbda8e683a1933755d0b8a68fed620cd63148ee)

Change-Id: I228db6ea1003e4e70d6a5fa7345d56409e70bd87

8 years agoCombine checksum of all boot images.
Jeff Hao [Thu, 7 Apr 2016 22:40:54 +0000 (15:40 -0700)]
Combine checksum of all boot images.

Allows a change to be detected in more than just the first image.
Combines checksums of all boot images using xor. A better hash is left
as TODO.

Bug: 28054110

(cherry-picked from commit 4f351aae00f43dd4e3290976f249d3664cc47091)

Change-Id: Ia557e2460ca582082368ef93508c04ce32c3036a

8 years agoMerge "ART: Fix interpreter single-step when doing OSR"
Bill Buzbee [Thu, 7 Apr 2016 23:47:55 +0000 (23:47 +0000)]
Merge "ART: Fix interpreter single-step when doing OSR"

8 years agoART: Fix interpreter single-step when doing OSR
buzbee [Thu, 7 Apr 2016 20:52:48 +0000 (13:52 -0700)]
ART: Fix interpreter single-step when doing OSR

Records an interpreter exit when in single-step mode and we've
finished processing the method via on-stack replacement.

Change-Id: I7a7d9ee9e4f3fbf7f829d9f54eca0e7c64395003

8 years agoMerge changes Ie23877ac,I262f6be8
Hiroshi Yamauchi [Thu, 7 Apr 2016 21:10:54 +0000 (21:10 +0000)]
Merge changes Ie23877ac,I262f6be8

* changes:
  Revert "Disable some image_test cases with concurrent collector."
  Fix image_test for the CC collector.

8 years agoRevert "Disable some image_test cases with concurrent collector."
Hiroshi Yamauchi [Thu, 7 Apr 2016 18:44:50 +0000 (11:44 -0700)]
Revert "Disable some image_test cases with concurrent collector."

This reverts commit d52765768b634c6f32a9bddd5c1269f26d32ea3a.

Bug: 27578460
Change-Id: Ie23877ac5332e05805c251749159e8f00af4ac8c

8 years agoFix image_test for the CC collector.
Hiroshi Yamauchi [Thu, 7 Apr 2016 18:31:26 +0000 (11:31 -0700)]
Fix image_test for the CC collector.

Increase the image address space reserve.

Bug: 27578460
Change-Id: I262f6be81c496a7a777013702e3da74ea4d619b4

8 years agoMerge "Remove AnnotationAccess and its remaining uses."
Jeff Hao [Thu, 7 Apr 2016 18:06:13 +0000 (18:06 +0000)]
Merge "Remove AnnotationAccess and its remaining uses."

8 years agoRevert "Revert "Check if we require barrier if we did not resolve classes""
Mathieu Chartier [Thu, 7 Apr 2016 17:52:52 +0000 (10:52 -0700)]
Revert "Revert "Check if we require barrier if we did not resolve classes""

This reverts commit a7ab4997f7263439561093ffbc7dea29181a47c5.

8 years agoRevert "Revert "Change RequiresConstructorBarrier default to yes""
Mathieu Chartier [Thu, 7 Apr 2016 17:19:48 +0000 (10:19 -0700)]
Revert "Revert "Change RequiresConstructorBarrier default to yes""

This reverts commit 0436ee6bd33a0b905cd2a7e333f7935da1bd5d86.

8 years agoMerge "Remove more Quick-related macros in tests."
Roland Levillain [Thu, 7 Apr 2016 16:13:10 +0000 (16:13 +0000)]
Merge "Remove more Quick-related macros in tests."

8 years agoMerge "Revert "Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals"""
David Brazdil [Thu, 7 Apr 2016 16:03:51 +0000 (16:03 +0000)]
Merge "Revert "Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals"""

8 years agoRevert "Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals""
David Brazdil [Thu, 7 Apr 2016 09:54:26 +0000 (09:54 +0000)]
Revert "Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals""

This patch merges the instruction-building phases from HGraphBuilder
and SsaBuilder into a single HInstructionBuilder class. As a result,
it is not necessary to generate HLocal, HLoadLocal and HStoreLocal
instructions any more, as the builder produces SSA form directly.

Saves 5-15% of arena-allocated memory (see bug for more data):
  GMS      20.46MB  =>  19.26MB  (-5.86%)
  Maps     24.12MB  =>  21.47MB  (-10.98%)
  YouTube  28.60MB  =>  26.01MB  (-9.05%)

This CL fixed an issue with parsing quickened instructions.

Bug: 27894376
Bug: 27998571
Bug: 27995065

Change-Id: I20dbe1bf2d0fe296377478db98cb86cba695e694

8 years agoRemove more Quick-related macros in tests.
Roland Levillain [Wed, 6 Apr 2016 17:23:01 +0000 (18:23 +0100)]
Remove more Quick-related macros in tests.

Remove these macros, as Quick is gone:
- TEST_DISABLED_FOR_HEAP_REFERENCE_POISONING_WITH_QUICK
- TEST_DISABLED_FOR_READ_BARRIER_WITH_QUICK

Also remove TEST_DISABLED_FOR_NON_PIC_COMPILING_WITH_OPTIMIZING,
as it is no longer used anywhere.

Change-Id: I78617fc060b7727f9b6fffcb2348d6fca01b4928

8 years agoMerge "Revert "Change RequiresConstructorBarrier default to yes""
Roland Levillain [Thu, 7 Apr 2016 14:58:32 +0000 (14:58 +0000)]
Merge "Revert "Change RequiresConstructorBarrier default to yes""

8 years agoRevert "Change RequiresConstructorBarrier default to yes"
Roland Levillain [Thu, 7 Apr 2016 14:58:12 +0000 (14:58 +0000)]
Revert "Change RequiresConstructorBarrier default to yes"

CL https://android-review.googlesource.com/#/c/213119/ is
breaking run-test 476-checker-ctor-memory-barrier on ARM
and ARM64.

Bug: 28005874

This reverts commit f2f0f4b0b9185fe0b6d1fb22744a871c96296db2.

Change-Id: Ic6e97ab07358406c07c654ac9de700f0186f15f8

8 years agoMerge "Revert "Check if we require barrier if we did not resolve classes""
Roland Levillain [Thu, 7 Apr 2016 14:57:50 +0000 (14:57 +0000)]
Merge "Revert "Check if we require barrier if we did not resolve classes""

8 years agoRevert "Check if we require barrier if we did not resolve classes"
Roland Levillain [Thu, 7 Apr 2016 14:56:58 +0000 (14:56 +0000)]
Revert "Check if we require barrier if we did not resolve classes"

CL https://android-review.googlesource.com/#/c/213119/ is
breaking run-test 476-checker-ctor-memory-barrier on ARM
and ARM64, and reverting it requires reverting this CL
(https://android-review.googlesource.com/#/c/213109/)
first.

Bug: 28005874

This reverts commit 20fd7cdd25364b16d878df037c6ae0fbd5f2a9ac.

Change-Id: Iaf174b2df3dd4dd469c79ca3f2c68ef87748d124

8 years agoMerge "Thumb2: Show the immediate in ROR (immediate) disassembly."
Vladimir Marko [Thu, 7 Apr 2016 14:38:29 +0000 (14:38 +0000)]
Merge "Thumb2: Show the immediate in ROR (immediate) disassembly."

8 years agoMerge "Add 20s timeout to 570-checker-osr."
Vladimir Marko [Thu, 7 Apr 2016 12:12:35 +0000 (12:12 +0000)]
Merge "Add 20s timeout to 570-checker-osr."

8 years agoAdd 20s timeout to 570-checker-osr.
Vladimir Marko [Thu, 7 Apr 2016 09:12:31 +0000 (10:12 +0100)]
Add 20s timeout to 570-checker-osr.

It's better to report a timeout than to hang indefinitely.

Change-Id: Ibfa8059c8b44220c7a55801b020094fc342c8047

8 years agoMerge "Optimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod."
Vladimir Marko [Thu, 7 Apr 2016 09:18:36 +0000 (09:18 +0000)]
Merge "Optimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod."

8 years agoMerge "Move optimizations out of HInliner::TryBuildAndInlineHelper."
Roland Levillain [Thu, 7 Apr 2016 09:08:06 +0000 (09:08 +0000)]
Merge "Move optimizations out of HInliner::TryBuildAndInlineHelper."

8 years agoMerge changes I775a57c9,I14c0836f,I075c1b11
Andreas Gampe [Thu, 7 Apr 2016 00:42:30 +0000 (00:42 +0000)]
Merge changes I775a57c9,I14c0836f,I075c1b11

* changes:
  ART: Add cutout for Unsafe.putObjectVolatile
  ART: Add integer & long parsing cutout to unstarted runtime
  ART: Add getDeclaredConstructor cutout for unstarted runtime

8 years agoMerge "Check if we require barrier if we did not resolve classes"
Mathieu Chartier [Wed, 6 Apr 2016 23:05:00 +0000 (23:05 +0000)]
Merge "Check if we require barrier if we did not resolve classes"

8 years agoCheck if we require barrier if we did not resolve classes
Mathieu Chartier [Wed, 6 Apr 2016 21:41:23 +0000 (14:41 -0700)]
Check if we require barrier if we did not resolve classes

Check fields instead of just always inserting the return void
barrier.

Bug: 28005874

(cherry picked from commit 03c7df9648028228d75dddfc25cbc81ab8096167)

Change-Id: I1207fecc9a4425d024a7e5e1a850c9e2a6e17c31

8 years agoMerge "Fix regression in ModUnionTable RAM usage"
Mathieu Chartier [Wed, 6 Apr 2016 22:53:45 +0000 (22:53 +0000)]
Merge "Fix regression in ModUnionTable RAM usage"

8 years agoFix regression in ModUnionTable RAM usage
Mathieu Chartier [Wed, 6 Apr 2016 22:27:19 +0000 (15:27 -0700)]
Fix regression in ModUnionTable RAM usage

We forgot to check if a reference changed before assigning it back,
this caused extra dirty pages in the image.

BusinessCard .art PSS
Before: 1678 KB
After: 991 KB

System wide .art PSS goes down ~20MB on my shamu.

Bug: 27906566

(cherry picked from commit 014885a8561f2415cb19ebde1e4084b88d63b746)

Change-Id: I64d149f10f3ef1ed1cb61810282559b47823014c

8 years agoART: Add cutout for Unsafe.putObjectVolatile
Andreas Gampe [Wed, 6 Apr 2016 04:12:51 +0000 (21:12 -0700)]
ART: Add cutout for Unsafe.putObjectVolatile

Add an unstarted-runtime cutout for putObjectVolatile.

Allows to compile-time initialize:
* android.content.res.Configuration
* android.icu.text.PluralRules$SimpleTokenizer
* android.icu.text.UnicodeSet
* android.icu.util.VersionInfo
* android.util.LocaleList

May allow follow-up changes to compile-time initialize
more ICU classes.

Bug: 27265238

(cherry picked from commit 1813d116cb1367f0ae449221c7ff6c6b421d269f)

Change-Id: I775a57c9f15aa8f42a4dffbd1dd40c641c30f645

8 years agoART: Add integer & long parsing cutout to unstarted runtime
Andreas Gampe [Wed, 6 Apr 2016 03:14:30 +0000 (20:14 -0700)]
ART: Add integer & long parsing cutout to unstarted runtime

Add a cutout for Integer.parseInt and Long.parseLong. Only handle
(some) successful cases, and abort the transaction in the rest.
Add tests.

Allows to compile-time initialize:
* com.android.org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers
* com.android.org.bouncycastle.asn1.x509.X509ObjectIdentifiers
* sun.security.x509.InhibitAnyPolicyExtension

Bug: 27265238

(cherry picked from commit 9c62dab16e4be0c19a2e6c6c0cc2b24c2814c6f2)

Change-Id: I14c0836fd9ec7c9bf49d8186ff14a3c6830ff711

8 years agoART: Add getDeclaredConstructor cutout for unstarted runtime
Andreas Gampe [Wed, 6 Apr 2016 01:18:43 +0000 (18:18 -0700)]
ART: Add getDeclaredConstructor cutout for unstarted runtime

In the vein of getDeclaredMethod and getDeclaredField. Refactor
code from java_lang_Class to share code.

Allows to compile-time initialize:
* sun.security.x509.AVAKeyword
* sun.security.x509.X500Name

Bug: 27265238

(cherry picked from commit f72f19fac0016499d33fd75b0463d0128a58a9f4)

Change-Id: I075c1b11f3408f5b31e4f84140a24fd8d3eaa17e

8 years agoMerge "Shard classloader classes lock"
Mathieu Chartier [Wed, 6 Apr 2016 19:25:39 +0000 (19:25 +0000)]
Merge "Shard classloader classes lock"

8 years agoShard classloader classes lock
Mathieu Chartier [Tue, 5 Apr 2016 21:36:57 +0000 (14:36 -0700)]
Shard classloader classes lock

Used to guard adding and removing classes.

Previously we used the class linker classes lock, but this had
a deadlock issue since the reference processor may need to acquire
the lock to mark the classes of a class loader. Another thread could
be blocked trying to access weak globals while also holding the
class linker classes lock.

Bug: 27946564

(cherry picked from commit 1609e3a42051769f4a8be3b6731e7bb2f828b3bb)

Change-Id: Ic5cfe573c4e6822d49ad0862ffdd9d036e439a96

8 years agoMerge "Change RequiresConstructorBarrier default to yes"
Mathieu Chartier [Wed, 6 Apr 2016 19:22:28 +0000 (19:22 +0000)]
Merge "Change RequiresConstructorBarrier default to yes"

8 years agoChange RequiresConstructorBarrier default to yes
Mathieu Chartier [Wed, 6 Apr 2016 17:47:45 +0000 (10:47 -0700)]
Change RequiresConstructorBarrier default to yes

Previously it defaulted to false, this caused incorrect dex2dex if
the resolution pass was not run.

TODO: Re-enable the no barrier for no resolution case to improve
interpreter performance slightly.

Bug: 28005874

(cherry picked from commit e5d8020b03956db6d533852b3ae940e0eb0fafc4)

Change-Id: Ibde6e18b8543f7bc9e17db6941a710756cd8b617

8 years agoMerge "Change hash set to use noexcept"
Mathieu Chartier [Wed, 6 Apr 2016 18:35:18 +0000 (18:35 +0000)]
Merge "Change hash set to use noexcept"

8 years agoChange hash set to use noexcept
Mathieu Chartier [Wed, 6 Apr 2016 02:13:37 +0000 (19:13 -0700)]
Change hash set to use noexcept

Otherwise it uses copy constructor instead of move constructor in
some cases (like std::vector).

Reduces shared dirty native by around 350k.

Bug: 27860101

(cherry picked from commit 5ef868c8332db11bb90284887a7f676f5dbef373)

Change-Id: I0311fa530fc2436630abebfdac2cad375eb4d691

8 years agoThumb2: Show the immediate in ROR (immediate) disassembly.
Vladimir Marko [Wed, 6 Apr 2016 18:05:19 +0000 (19:05 +0100)]
Thumb2: Show the immediate in ROR (immediate) disassembly.

Now disassembled as "mov ., ., ror #imm5".

Change-Id: Iad201662fd6aa3f87b95c7293fafe030c4bbdbf3

8 years agoMerge "Fix and re-enable compiler_driver_test"
Yi Kong [Wed, 6 Apr 2016 16:59:02 +0000 (16:59 +0000)]
Merge "Fix and re-enable compiler_driver_test"

8 years agoMerge "ART: Handle OOM in stack overflow"
Mathieu Chartier [Wed, 6 Apr 2016 16:51:48 +0000 (16:51 +0000)]
Merge "ART: Handle OOM in stack overflow"

8 years agoFix and re-enable compiler_driver_test
Yi Kong [Mon, 4 Apr 2016 16:44:59 +0000 (17:44 +0100)]
Fix and re-enable compiler_driver_test

This reverts commit 6f58cb85328bed2f3ea246cce4080244544d7c2b.

The move to OpenJDK introduces new dependencies to compile these
methods, however we don't actually need them to run this test. Remove
them here to enable the test again.

Bug: 25836016
Change-Id: I75b12c48941fca6646142004accae8364e8c6dbc

8 years agoMove optimizations out of HInliner::TryBuildAndInlineHelper.
Roland Levillain [Wed, 6 Apr 2016 16:45:58 +0000 (17:45 +0100)]
Move optimizations out of HInliner::TryBuildAndInlineHelper.

This is a followup CL to
https://android-review.googlesource.com/#/c/212651.

Change-Id: I37d1c3fc06d8e36c335dd62887936486f7deeba4

8 years agoOptimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod.
Vladimir Marko [Wed, 6 Apr 2016 16:33:41 +0000 (17:33 +0100)]
Optimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod.

Use the original method index instead of the target method
index because the target method may point to a different dex
file.

No regression test: this currently happens only if the
codegen uses the kDexCacheViaMethod as a fallback for
another load kind and we aim to avoid that fallback, so it
would be difficult to write a reliable regression test. We
could try and exploit current fallbacks for irreducible
loops on x86 and arm but those fallbacks will eventually
disappear anyway.

Bug: 28036230
Change-Id: I4cc9e046480d3d60a7fb521f0ca6a98914625cdc

8 years agoART: Handle OOM in stack overflow
Mathieu Chartier [Mon, 4 Apr 2016 23:49:44 +0000 (16:49 -0700)]
ART: Handle OOM in stack overflow

When creating a stack overflow error, we must not allocate a
new out-of-memory error. Running its constructor will lead to
a nested exception.

Bug: 27663199

Change-Id: I2a7b5b937730eeade22dce654cfc4ad903c5f040

8 years agoMerge "ART: Add arraycopy(byte) to unstarted runtime"
Andreas Gampe [Wed, 6 Apr 2016 01:18:15 +0000 (01:18 +0000)]
Merge "ART: Add arraycopy(byte) to unstarted runtime"

8 years agoART: Add arraycopy(byte) to unstarted runtime
Andreas Gampe [Tue, 5 Apr 2016 21:16:10 +0000 (14:16 -0700)]
ART: Add arraycopy(byte) to unstarted runtime

The byte-array version is now in use in libcore.

Allows to compile-time initialize:
* java.security.cert.X509CertSelector
* sun.security.pkcs.PKCS9Attribute
* sun.security.provider.certpath.AdaptableX509CertSelector
* sun.security.x509.AccessDescription
* sun.security.x509.AlgorithmId
* sun.security.x509.ExtendedKeyUsageExtension
* sun.security.x509.NetscapeCertTypeExtension
* sun.security.x509.OIDMap
* sun.security.x509.PKIXExtensions

Bug: 27265238

(cherry picked from commit cc44581beacd61a633b02a1223d1bf6fea278f94)

Change-Id: If6b680a455809152c9bd7a679a8ab430936c46a1

8 years agoMerge "ART: Don't attempt write flock if not zygote"
Andreas Gampe [Tue, 5 Apr 2016 23:02:42 +0000 (23:02 +0000)]
Merge "ART: Don't attempt write flock if not zygote"

8 years agoART: Don't attempt write flock if not zygote
Andreas Gampe [Tue, 5 Apr 2016 17:26:42 +0000 (10:26 -0700)]
ART: Don't attempt write flock if not zygote

When loading an image, don't attempt a RDWR flock if the process
is not the zygote. The lock will be rejected as the process does
not have permission to write the file.

Bug: 28011897

(cherry picked from commit fff377b13469b8c84ce55ee20b10ca80a5a0813d)

Change-Id: I567934c4e9a9a13e9131711240e9ecfdd58b69f7

8 years agoMerge "Fix issued with non-public interface methods."
Alex Light [Tue, 5 Apr 2016 17:49:22 +0000 (17:49 +0000)]
Merge "Fix issued with non-public interface methods."

8 years agoMerge "Remove unnecessary TEMP_FAILURE_RETRY."
Vladimir Marko [Tue, 5 Apr 2016 15:43:16 +0000 (15:43 +0000)]
Merge "Remove unnecessary TEMP_FAILURE_RETRY."

8 years agoMerge "Implement ARM64 support for SystemArrayCopy()"
Roland Levillain [Tue, 5 Apr 2016 13:25:12 +0000 (13:25 +0000)]
Merge "Implement ARM64 support for SystemArrayCopy()"

8 years agoRemove unnecessary TEMP_FAILURE_RETRY.
Vladimir Marko [Tue, 5 Apr 2016 13:19:08 +0000 (14:19 +0100)]
Remove unnecessary TEMP_FAILURE_RETRY.

unlink, rmdir, rename and closedir do not generate EINTR.

Change-Id: Ia5daab3e19f7373d7c27cdb6a800351c86b5a4e5

8 years agoMerge "Remove unused 'status' variable"
Vladimir Marko [Tue, 5 Apr 2016 12:36:16 +0000 (12:36 +0000)]
Merge "Remove unused 'status' variable"

8 years agoMerge "Revert "Remove many `instrumentation` variables from goto interpreter.""
Vladimir Marko [Tue, 5 Apr 2016 11:52:23 +0000 (11:52 +0000)]
Merge "Revert "Remove many `instrumentation` variables from goto interpreter.""