OSDN Git Service

android-x86/art.git
8 years agoFixed bug on premature DCHECK.
Aart Bik [Wed, 3 Feb 2016 20:56:02 +0000 (12:56 -0800)]
Fixed bug on premature DCHECK.
With fail-before/pass-after test

bug=26947011

Rationale:
During BCE, the phi structure is under construction,
to be fixed by InsertPhiNodes() and carefully checked
with the SSA checker. So utilities should not overly
DCHECK on SSA consistency during the modifications.

Change-Id: Ia9df9ee5aac0c1dd2c3e3a447c730246d5e48bbb

8 years agoMerge "Minor improvement on static BCE analysis."
Aart Bik [Wed, 3 Feb 2016 17:29:11 +0000 (17:29 +0000)]
Merge "Minor improvement on static BCE analysis."

8 years agoMinor improvement on static BCE analysis.
Aart Bik [Tue, 2 Feb 2016 21:26:16 +0000 (13:26 -0800)]
Minor improvement on static BCE analysis.

Rationale:
Avoid testing initial range if nothing is known.

Change-Id: I22646a5fd6e4481245d1a2f57891d2805550489f

8 years agoMerge "Implement first kind of polymorphic inlining on MIPS."
Roland Levillain [Wed, 3 Feb 2016 12:28:41 +0000 (12:28 +0000)]
Merge "Implement first kind of polymorphic inlining on MIPS."

8 years agoImplement first kind of polymorphic inlining on MIPS.
Roland Levillain [Wed, 3 Feb 2016 12:27:20 +0000 (12:27 +0000)]
Implement first kind of polymorphic inlining on MIPS.

Change-Id: Ie430d6c5821273143a1872b376e8e24683d00ab0

8 years agoMerge "Revert "Revert "Optimizing: double-negated bitwise operations simplifications"""
Roland Levillain [Wed, 3 Feb 2016 12:14:14 +0000 (12:14 +0000)]
Merge "Revert "Revert "Optimizing: double-negated bitwise operations simplifications"""

8 years agoRevert "Revert "Optimizing: double-negated bitwise operations simplifications""
Alexandre Rames [Wed, 3 Feb 2016 10:54:07 +0000 (10:54 +0000)]
Revert "Revert "Optimizing: double-negated bitwise operations simplifications""

This reverts commit 737c0a99dfbba306ec1f50e2adf66b5d97805af6 with fixes.

In the original patch, the new instruction could be inserted before
one of its inputs. A regression test is also added.

Change-Id: Ie49a17ac90ff048355d9cc944b468cd1b1914424

8 years agoMerge "ART: Fix rounding up in DexCacheArraysLayout constructor."
Vladimir Marko [Wed, 3 Feb 2016 10:51:15 +0000 (10:51 +0000)]
Merge "ART: Fix rounding up in DexCacheArraysLayout constructor."

8 years agoMerge "Assume fp operations can also take a constant on x86."
Nicolas Geoffray [Wed, 3 Feb 2016 10:44:56 +0000 (10:44 +0000)]
Merge "Assume fp operations can also take a constant on x86."

8 years agoMerge "Write DWARF strings inline and remove .debug_str section."
David Srbecky [Wed, 3 Feb 2016 10:43:03 +0000 (10:43 +0000)]
Merge "Write DWARF strings inline and remove .debug_str section."

8 years agoWrite DWARF strings inline and remove .debug_str section.
David Srbecky [Mon, 1 Feb 2016 15:37:32 +0000 (15:37 +0000)]
Write DWARF strings inline and remove .debug_str section.

This means we no longer de-duplicate strings. Contra-intuitively this
saves space since removal of the indirection (4 bytes per string)
outweights the saving that we had from removal of duplicated strings.

The removal of buffering and deduplication also speeds up the processing.

Change-Id: Iee559094ed6180363e1665fbc79493e624b63435

8 years agoMerge "Share DWARF .debug_abbrev sections."
David Srbecky [Wed, 3 Feb 2016 10:39:42 +0000 (10:39 +0000)]
Merge "Share DWARF .debug_abbrev sections."

8 years agoShare DWARF .debug_abbrev sections.
David Srbecky [Fri, 29 Jan 2016 18:59:56 +0000 (18:59 +0000)]
Share DWARF .debug_abbrev sections.

Restructure the code so that all compilation units share the same
.debug_abbrev sections.  This deduplicates many of the abbrevs.

Change-Id: I7da07a8c850871786df52674183c16d574684729

8 years agoAssume fp operations can also take a constant on x86.
Nicolas Geoffray [Wed, 3 Feb 2016 10:13:41 +0000 (10:13 +0000)]
Assume fp operations can also take a constant on x86.

Because irreducible loops disable the constant pool optimization
on x86, we need to handle cases where a fp operation gets one.

Change-Id: I43387f31aa2589d02112953baa62fd0994d0a6d7

8 years agoMerge "ART: Enable multi-level instruction inlining"
David Brazdil [Wed, 3 Feb 2016 10:00:20 +0000 (10:00 +0000)]
Merge "ART: Enable multi-level instruction inlining"

8 years agoART: Enable multi-level instruction inlining
David Brazdil [Tue, 2 Feb 2016 16:50:46 +0000 (16:50 +0000)]
ART: Enable multi-level instruction inlining

Change-Id: I4b4c927d7b1598dc197793c25185fb079dec7fe1

8 years agoMerge "Handle HSelect in LSE."
Mingyao Yang [Wed, 3 Feb 2016 07:21:05 +0000 (07:21 +0000)]
Merge "Handle HSelect in LSE."

8 years agoHandle HSelect in LSE.
Mingyao Yang [Wed, 3 Feb 2016 04:10:32 +0000 (20:10 -0800)]
Handle HSelect in LSE.

HSelect essentially creates an alias which breaks the singleton
assumption. Need to handle the case in singleton detection.

Bug: 26922558
Change-Id: I259deefe16e1e16c08179a10369cfe5ae23ae155

8 years agoMerge "Prevent crashes if boot images fail to load"
Mathieu Chartier [Wed, 3 Feb 2016 03:02:54 +0000 (03:02 +0000)]
Merge "Prevent crashes if boot images fail to load"

8 years agoPrevent crashes if boot images fail to load
Mathieu Chartier [Wed, 3 Feb 2016 01:24:39 +0000 (17:24 -0800)]
Prevent crashes if boot images fail to load

We now reset the requested_alloc_space_begin so that there are no gaps
between any boot images and the non moving space.

Also clear boot_image_spaces so that ClassLinker::InitFromBootImage is
not called.

Finally, delete image spaces so that the maps and oat files are
unmapped.

Bug: 26913820

(cherry picked from commit 1e5ff87e774fdbd46efb1d2f61b1b2ab80145a19)

Change-Id: Ia31937f29ef217eac083165dfff37cd068fbd32b

8 years agoMerge "Fix updating string dex cache array for no class table case"
Mathieu Chartier [Wed, 3 Feb 2016 00:18:12 +0000 (00:18 +0000)]
Merge "Fix updating string dex cache array for no class table case"

8 years agoFix updating string dex cache array for no class table case
Mathieu Chartier [Tue, 2 Feb 2016 18:09:58 +0000 (10:09 -0800)]
Fix updating string dex cache array for no class table case

The issue was that array classes do not have a dex cache. Also removed
some unnecessary mutables.

Bug: 22858531
Change-Id: I2bc45f019e064b6e562c8f158cc2ac8c0e513afd

8 years agoMerge "Fix remaining read barrier issues in image relocation"
Mathieu Chartier [Wed, 3 Feb 2016 00:08:44 +0000 (00:08 +0000)]
Merge "Fix remaining read barrier issues in image relocation"

8 years agoFix remaining read barrier issues in image relocation
Mathieu Chartier [Tue, 2 Feb 2016 04:15:11 +0000 (20:15 -0800)]
Fix remaining read barrier issues in image relocation

Added a way to disallow read barriers, this makes it easy to find
the issues.

Bug: 26786304
Change-Id: I7ebb50832686d03e096a979aae9741239371683f

8 years agoMerge "Rosalloc fast path in assembly for MIPS64"
Hans Boehm [Tue, 2 Feb 2016 23:11:14 +0000 (23:11 +0000)]
Merge "Rosalloc fast path in assembly for MIPS64"

8 years agoMerge "Fix DCHECK compilation error."
Richard Uhler [Tue, 2 Feb 2016 23:08:12 +0000 (23:08 +0000)]
Merge "Fix DCHECK compilation error."

8 years agoMerge "Use SS/GSS collectors in dex2oat if they are the default."
Hiroshi Yamauchi [Tue, 2 Feb 2016 21:55:04 +0000 (21:55 +0000)]
Merge "Use SS/GSS collectors in dex2oat if they are the default."

8 years agoUse SS/GSS collectors in dex2oat if they are the default.
Hiroshi Yamauchi [Fri, 29 Jan 2016 23:38:58 +0000 (15:38 -0800)]
Use SS/GSS collectors in dex2oat if they are the default.

With CL 198466, we stopped exercising the SS/GSS collectors in dex2oat,
which could bit-rot. We now turn on the force deterministic compilation
only if the default GC is CMS or MS and allow the SS/GSS collectors to
be exercised in dex2oat if they are the default.

Bug: 26687569
Change-Id: I049f8d0a9b4ebf3f31d0953cf71dd0e4ba6aa651

8 years agoFix DCHECK compilation error.
Richard Uhler [Tue, 2 Feb 2016 21:36:55 +0000 (13:36 -0800)]
Fix DCHECK compilation error.

Change-Id: I4df32cd13ad1b355302bddce1cb0fc6ff2486abe

8 years agoMerge "ART: Fix bad manual rename of local variable."
Vladimir Marko [Tue, 2 Feb 2016 20:40:07 +0000 (20:40 +0000)]
Merge "ART: Fix bad manual rename of local variable."

8 years agoART: Fix rounding up in DexCacheArraysLayout constructor.
Vladimir Marko [Tue, 2 Feb 2016 20:27:08 +0000 (20:27 +0000)]
ART: Fix rounding up in DexCacheArraysLayout constructor.

This changes the way we round up to be conceptually correct
but does not really affect the results thanks to current
layout that interleaves GcRoot<> and pointer arrays. If two
odd-length GcRoot<> arrays were followed by a pointer array,
the pointer array would have been previously unaligned on
a 64-bit target.

Change-Id: I6b1cd2ed789f4f91206982caf3c765253fb65824

8 years agoMerge "Always use pendingNext to test enqueability of references."
Richard Uhler [Tue, 2 Feb 2016 20:22:47 +0000 (20:22 +0000)]
Merge "Always use pendingNext to test enqueability of references."

8 years agoART: Fix bad manual rename of local variable.
Vladimir Marko [Tue, 2 Feb 2016 20:12:32 +0000 (20:12 +0000)]
ART: Fix bad manual rename of local variable.

Follow up to
    https://android-review.googlesource.com/198621 .

Bug: 26929002
Change-Id: I11c5000d7b7bfaa866d45603c8c21d4ab8599a0e

8 years agoMerge "ART: Clean up strings fixup for app images."
Vladimir Marko [Tue, 2 Feb 2016 18:55:09 +0000 (18:55 +0000)]
Merge "ART: Clean up strings fixup for app images."

8 years agoMerge "MIPS32: Fix codegen register dumps."
Vladimir Marko [Tue, 2 Feb 2016 18:51:45 +0000 (18:51 +0000)]
Merge "MIPS32: Fix codegen register dumps."

8 years agoMIPS32: Fix codegen register dumps.
Vladimir Marko [Tue, 2 Feb 2016 18:14:52 +0000 (18:14 +0000)]
MIPS32: Fix codegen register dumps.

Dump raw registers instead of managed registers to be
in line with other architectures. This fixes a checker
failure in 510-checker-try-catch where we have previously
emitted a space that stopped the regexp search. However,
there still remains a runtime failure of the 510 test:
  Exception in thread "main" java.lang.Error:
    Method: "testCatchPhi_double",
    path: ExceptionalFlow1, expected: 3, actual: 0

Change-Id: Ib9ad2c60baf2e322ce1eb58b9dc39feb5ab6f148

8 years agoMerge "Revert "Revert "ART: Mterp for arm64"""
Bill Buzbee [Tue, 2 Feb 2016 18:00:33 +0000 (18:00 +0000)]
Merge "Revert "Revert "ART: Mterp for arm64"""

8 years agoRevert "Revert "ART: Mterp for arm64""
Bill Buzbee [Tue, 2 Feb 2016 13:45:36 +0000 (13:45 +0000)]
Revert "Revert "ART: Mterp for arm64""

Looks like some of our assemblers disagree on valid arm64 assembly syntax
Force use of clang for art runtime.  In a subsequent CL, will use form
that both gcc and clang accept.

This reverts commit 43f3fb960bce978df699c8a68a972be2a0d0d221.

Change-Id: Ice83072171ab502c43d492e2238b446c4814ea67

8 years agoMerge "Add MIPS floating point register mapping to DWARF."
David Srbecky [Tue, 2 Feb 2016 17:35:19 +0000 (17:35 +0000)]
Merge "Add MIPS floating point register mapping to DWARF."

8 years agoAdd MIPS floating point register mapping to DWARF.
David Srbecky [Mon, 1 Feb 2016 18:15:29 +0000 (18:15 +0000)]
Add MIPS floating point register mapping to DWARF.

Change-Id: I88508461412bc166549843744a3c6a4ee925b2c7

8 years agoART: Clean up strings fixup for app images.
Vladimir Marko [Tue, 2 Feb 2016 14:43:28 +0000 (14:43 +0000)]
ART: Clean up strings fixup for app images.

This is a follow-up to
    https://android-review.googlesource.com/199854 .

Bug: 26846419
Bug: 22858531
Change-Id: Ib2b2c299c51686afb7f297697125296705ed77b8

8 years agoMerge "Optimizing: Re-enable checker tests disabled for multi-image."
Vladimir Marko [Tue, 2 Feb 2016 15:29:43 +0000 (15:29 +0000)]
Merge "Optimizing: Re-enable checker tests disabled for multi-image."

8 years agoOptimizing: Re-enable checker tests disabled for multi-image.
Vladimir Marko [Tue, 2 Feb 2016 15:21:28 +0000 (15:21 +0000)]
Optimizing: Re-enable checker tests disabled for multi-image.

The pattern substituion we now do instead of inlining
is enough for these tests to work again.

Bug: 26317072
Change-Id: I0d501874b1be31884e9efc4f5d32fa893394c9ec

8 years agoMerge "Avoid re-declarations of base classes in DWARF."
David Srbecky [Tue, 2 Feb 2016 15:11:54 +0000 (15:11 +0000)]
Merge "Avoid re-declarations of base classes in DWARF."

8 years agoMerge "Use more compact encoding for DWARF flags."
David Srbecky [Tue, 2 Feb 2016 15:11:26 +0000 (15:11 +0000)]
Merge "Use more compact encoding for DWARF flags."

8 years agoMerge "Optimize DWARF namespace encoding."
David Srbecky [Tue, 2 Feb 2016 15:10:55 +0000 (15:10 +0000)]
Merge "Optimize DWARF namespace encoding."

8 years agoMerge "Optimizing: Do not depend on sharpening in test 449."
Vladimir Marko [Tue, 2 Feb 2016 15:04:57 +0000 (15:04 +0000)]
Merge "Optimizing: Do not depend on sharpening in test 449."

8 years agoOptimizing: Do not depend on sharpening in test 449.
Vladimir Marko [Tue, 2 Feb 2016 14:53:47 +0000 (14:53 +0000)]
Optimizing: Do not depend on sharpening in test 449.

The sharpening may or may not remove the ArtMethod*
parameter, so the test must not depend on its absence.
This fixes the test 449 checker test on mips/mips64.

Change-Id: I0c9e7353234365c97b622c7c84708be3dcbbe4ff

8 years agoMerge "ART: Add test case for Select implementations"
David Brazdil [Tue, 2 Feb 2016 14:50:08 +0000 (14:50 +0000)]
Merge "ART: Add test case for Select implementations"

8 years agoAvoid re-declarations of base classes in DWARF.
David Srbecky [Mon, 1 Feb 2016 14:53:48 +0000 (14:53 +0000)]
Avoid re-declarations of base classes in DWARF.

Declare each base class only once for sanity and to save space.
If the class also has definition, use it instead.

Change-Id: I07cca012d0db75980b1239f44c6cb4069c3f353e

8 years agoUse more compact encoding for DWARF flags.
David Srbecky [Fri, 29 Jan 2016 15:13:19 +0000 (15:13 +0000)]
Use more compact encoding for DWARF flags.

Use DW_FORM_flag_present when possible (new in DWARF4).
This avoids encoding the value in entries if it is always true.

Change-Id: Ib31908399b4d0fea7f7c175240aa9b0d6d473b5a

8 years agoOptimize DWARF namespace encoding.
David Srbecky [Fri, 29 Jan 2016 15:02:44 +0000 (15:02 +0000)]
Optimize DWARF namespace encoding.

Instead of encapsulating each class in its own set of namespace tags,
create hierarchy with multiple classes in the leaf namespaces.

Change-Id: I1fdb717d45e5ee3aa0c505c90a15b1670f45774f

8 years agoART: Add test case for Select implementations
David Brazdil [Tue, 2 Feb 2016 10:09:14 +0000 (10:09 +0000)]
ART: Add test case for Select implementations

Change-Id: I487f9cdde321d2bad8239464000ffa20c57c82de

8 years agoMerge "Remove unused DMB code paths in the ARM64 Optimizing Compiler"
Roland Levillain [Tue, 2 Feb 2016 14:36:58 +0000 (14:36 +0000)]
Merge "Remove unused DMB code paths in the ARM64 Optimizing Compiler"

8 years agoMerge "ARM64: Add direct calls to math intrinsics"
Roland Levillain [Tue, 2 Feb 2016 12:55:02 +0000 (12:55 +0000)]
Merge "ARM64: Add direct calls to math intrinsics"

8 years agoARM64: Add direct calls to math intrinsics
Anton Kirilov [Wed, 20 Jan 2016 16:48:19 +0000 (16:48 +0000)]
ARM64: Add direct calls to math intrinsics

This change mirrors the work that has already been done for x86 and
x86_64. The following functions are affected: cos, sin, acos, asin,
atan, atan2, cbrt, cosh, exp, expm1, hypot, log, log10, nextafter,
sinh, tan, tanh.

Change-Id: I0f381bd2c1c4273b243c045107110fed551c6124
Signed-off-by: Anton Kirilov <anton.kirilov@linaro.org>
8 years agoMerge "Optimizing: Do not depend on sharpening in test 569."
Vladimir Marko [Tue, 2 Feb 2016 11:26:15 +0000 (11:26 +0000)]
Merge "Optimizing: Do not depend on sharpening in test 569."

8 years agoOptimizing: Do not depend on sharpening in test 569.
Vladimir Marko [Tue, 2 Feb 2016 11:10:16 +0000 (11:10 +0000)]
Optimizing: Do not depend on sharpening in test 569.

The sharpening may or may not remove the ArtMethod*
parameter, so the test must not depend on its absence.
This fixes the test 569 checker test on mips/mips64.

Change-Id: Ibee88d3602778006558caf33cf69e7c419918699

8 years agoMerge "Revert "ART: Mterp for arm64""
Sebastien Hertz [Tue, 2 Feb 2016 10:50:30 +0000 (10:50 +0000)]
Merge "Revert "ART: Mterp for arm64""

8 years agoRevert "ART: Mterp for arm64"
Sebastien Hertz [Tue, 2 Feb 2016 10:48:49 +0000 (10:48 +0000)]
Revert "ART: Mterp for arm64"

This reverts commit e0c269e0a5f50b1a551ddba1205f6e5b4b5e6c98.

The CL is causing build breakages on arm64 targets.

Change-Id: I7402fe34869258ae870c57308b2062e50d801bdd

8 years agoMerge "MIPS64: Remove unaligned memory access from art generated code"
Vladimir Marko [Tue, 2 Feb 2016 10:39:20 +0000 (10:39 +0000)]
Merge "MIPS64: Remove unaligned memory access from art generated code"

8 years agoMerge "ART: Mterp for arm64"
Bill Buzbee [Tue, 2 Feb 2016 04:40:47 +0000 (04:40 +0000)]
Merge "ART: Mterp for arm64"

8 years agoMerge "Fix up dex cache strings stored in classes"
Mathieu Chartier [Tue, 2 Feb 2016 04:05:22 +0000 (04:05 +0000)]
Merge "Fix up dex cache strings stored in classes"

8 years agoFix up dex cache strings stored in classes
Mathieu Chartier [Mon, 1 Feb 2016 18:34:47 +0000 (10:34 -0800)]
Fix up dex cache strings stored in classes

Previously we left the image pointer instead of fixing up the pointer
to the one in the BSS. This only showed up because JIT does the same
as boot image, bypassing null check.

Fixed a bug where oat files without embedded dex cache arrays would
get their dex cache arrays corrupted.

Added a non virtual class visitor for performance.

Bug: 26846419
Bug: 22858531

Change-Id: I8cd0d61e440f753b4628ddb8c932eb23a0a81027

8 years agoMerge "Add read barrier option to UpdateEntrypoints"
Mathieu Chartier [Tue, 2 Feb 2016 02:07:06 +0000 (02:07 +0000)]
Merge "Add read barrier option to UpdateEntrypoints"

8 years agoAdd read barrier option to UpdateEntrypoints
Mathieu Chartier [Tue, 2 Feb 2016 00:08:15 +0000 (16:08 -0800)]
Add read barrier option to UpdateEntrypoints

Also call this without read barrier for image relocation.

Bug: 26786304
Change-Id: Ia718c1491b54cadb7283c62afc1eb9031a15b4ef

8 years agoART: Mterp for arm64
buzbee [Wed, 27 Jan 2016 02:23:19 +0000 (18:23 -0800)]
ART: Mterp for arm64

Ready for review.  All opcodes handled.  All applicable run-tests pass.
Device boots to desktop in interpret-only mode.

Change-Id: I937d8bcf848a831e04d4b9de8d1914667a197d75

8 years agoMerge "Implemented signum() on ARM64."
Aart Bik [Mon, 1 Feb 2016 18:32:50 +0000 (18:32 +0000)]
Merge "Implemented signum() on ARM64."

8 years agoImplemented signum() on ARM64.
Aart Bik [Fri, 29 Jan 2016 20:54:04 +0000 (12:54 -0800)]
Implemented signum() on ARM64.

Change-Id: Ib805e62341f6c5e4fcc35c73d12e217fbae948ce

8 years agoMerge "ART: Fix test 117 after OatFileAssistant change"
David Brazdil [Mon, 1 Feb 2016 18:06:16 +0000 (18:06 +0000)]
Merge "ART: Fix test 117 after OatFileAssistant change"

8 years agoART: Fix test 117 after OatFileAssistant change
David Brazdil [Mon, 1 Feb 2016 18:00:06 +0000 (18:00 +0000)]
ART: Fix test 117 after OatFileAssistant change

Change-Id: I20fc37ab869cb025c7ac5b550f5349d2e17de112

8 years agoMerge "ART: Release DexFile in OatFileAssistant"
David Brazdil [Mon, 1 Feb 2016 16:50:36 +0000 (16:50 +0000)]
Merge "ART: Release DexFile in OatFileAssistant"

8 years agoART: Release DexFile in OatFileAssistant
David Brazdil [Mon, 1 Feb 2016 16:32:50 +0000 (16:32 +0000)]
ART: Release DexFile in OatFileAssistant

Change-Id: I4ff0041191d2fe7a33c2b55f163a33e92da62b6b

8 years agoMerge "Ensure instruction cache is flushed in compiler tests with Clang."
Roland Levillain [Mon, 1 Feb 2016 15:48:42 +0000 (15:48 +0000)]
Merge "Ensure instruction cache is flushed in compiler tests with Clang."

8 years agoMerge "Ignore image checksum for ExtractOnly oat files"
David Brazdil [Mon, 1 Feb 2016 15:27:34 +0000 (15:27 +0000)]
Merge "Ignore image checksum for ExtractOnly oat files"

8 years agoEnsure instruction cache is flushed in compiler tests with Clang.
Roland Levillain [Mon, 1 Feb 2016 15:23:20 +0000 (15:23 +0000)]
Ensure instruction cache is flushed in compiler tests with Clang.

Invoke __builtin___clear_cache with Clang in
art::CommonCompilerTest::MakeExecutable.  This fixes
"Illegal instruction" failures in codegen_test on angler.

Factor this logic in a function and use it in
art::jit::JitCodeCache::CommitCodeInternal too.

Bug: 26786447
Change-Id: I81fa056c8d7c6bf2168c9340deeab82231cb1084

8 years agoIgnore image checksum for ExtractOnly oat files
David Brazdil [Thu, 28 Jan 2016 15:05:49 +0000 (15:05 +0000)]
Ignore image checksum for ExtractOnly oat files

Oat files compiled with --compiler-filter=verify-at-runtime contain
no compiled code and therefore are independent of the boot image.
This patch stores an ExtractOnly flag in the oat header and skips
the image checksum test if the flag is set, rendering the oat file
up to date even after OTAs.

Bug: 26813999

Change-Id: I25291d5b49d9e9d0018844e957a2dc88ef6bdc27

8 years agoMerge "Be on the safe side: emit an environment for runtime calls."
Nicolas Geoffray [Mon, 1 Feb 2016 15:02:23 +0000 (15:02 +0000)]
Merge "Be on the safe side: emit an environment for runtime calls."

8 years agoMerge "Track libcore change aa517a356a38b8cd6764667e1edd735aaf5978e9."
Narayan Kamath [Mon, 1 Feb 2016 14:01:36 +0000 (14:01 +0000)]
Merge "Track libcore change aa517a356a38b8cd6764667e1edd735aaf5978e9."

8 years agoTrack libcore change aa517a356a38b8cd6764667e1edd735aaf5978e9.
Narayan Kamath [Mon, 1 Feb 2016 13:22:18 +0000 (13:22 +0000)]
Track libcore change aa517a356a38b8cd6764667e1edd735aaf5978e9.

Change-Id: I32a995eb62e3268c20fa5c2ac8dc2bf190c6fb7a

8 years agoMerge "Invoke all other registered handlers only for generated code"
Calin Juravle [Mon, 1 Feb 2016 13:43:27 +0000 (13:43 +0000)]
Merge "Invoke all other registered handlers only for generated code"

8 years agoBe on the safe side: emit an environment for runtime calls.
Nicolas Geoffray [Mon, 1 Feb 2016 12:23:22 +0000 (12:23 +0000)]
Be on the safe side: emit an environment for runtime calls.

Even if those runtime calls don't throw, they may be interrupted
and be asked to dump their stack. Since dumping a stack also dumps
locked Java objects, we need a DexRegisterMap at these locations
to know the location of those objects.

Adds 0.05% to boot image code size.

bug:26168076
Change-Id: I7c3975addea9ddf3123183b07108b0701bb26fc8

8 years agoMerge "ART: Disallow uses of uninitialized references"
David Brazdil [Mon, 1 Feb 2016 12:19:53 +0000 (12:19 +0000)]
Merge "ART: Disallow uses of uninitialized references"

8 years agoART: Disallow uses of uninitialized references
David Brazdil [Tue, 19 Jan 2016 14:25:29 +0000 (14:25 +0000)]
ART: Disallow uses of uninitialized references

The following instructions accepted uninitialized reference types
as their arguments:
 - instance-of
 - check-cast
 - throw
 - iput-object (stored value argument)
 - sput-object
 - invoke-* (non-this arguments)

Monitor-enter and monitor-exit are allowed.

Bug: 26594149

Change-Id: I2a4decb1fba274b8969b17bc237ac0fd19b93c80

8 years agoMerge "Revert "Disable test after failing test was pushed.""
Narayan Kamath [Mon, 1 Feb 2016 11:41:40 +0000 (11:41 +0000)]
Merge "Revert "Disable test after failing test was pushed.""

8 years agoRevert "Disable test after failing test was pushed."
Narayan Kamath [Mon, 1 Feb 2016 10:40:38 +0000 (10:40 +0000)]
Revert "Disable test after failing test was pushed."

This reverts commit fd825201137046db7ffa4371ad6d374beda89735.

The change that fixes this test has been submitted.

Change-Id: I35612987b6b149f538b6c6d757eaa626b5349bbd

8 years agoMerge "Clean up UpdateOatFile for app images"
Mathieu Chartier [Sat, 30 Jan 2016 00:58:56 +0000 (00:58 +0000)]
Merge "Clean up UpdateOatFile for app images"

8 years agoClean up UpdateOatFile for app images
Mathieu Chartier [Fri, 29 Jan 2016 04:33:36 +0000 (20:33 -0800)]
Clean up UpdateOatFile for app images

Check that for the there is only one oat file name for the app image
case.

Avoid calling GetOatElfInformation unless necessary.

Bug: 22858531
Change-Id: I88d258a1cc2823956ecc4fca9a6f7b2d3c4b986e

8 years agoMerge "Add oat checksum check for app image loading"
Mathieu Chartier [Sat, 30 Jan 2016 00:07:45 +0000 (00:07 +0000)]
Merge "Add oat checksum check for app image loading"

8 years agoMerge "ART: Do not reopen oat file in ImageWriter::UpdateOatFile()."
Mathieu Chartier [Fri, 29 Jan 2016 23:48:56 +0000 (23:48 +0000)]
Merge "ART: Do not reopen oat file in ImageWriter::UpdateOatFile()."

8 years agoMerge "Regression test ensuring unresolved classes are not put in dex cache."
Jeff Hao [Fri, 29 Jan 2016 23:43:04 +0000 (23:43 +0000)]
Merge "Regression test ensuring unresolved classes are not put in dex cache."

8 years agoRegression test ensuring unresolved classes are not put in dex cache.
Jeff Hao [Fri, 29 Jan 2016 02:22:36 +0000 (18:22 -0800)]
Regression test ensuring unresolved classes are not put in dex cache.

Bug: 26792072

(cherry-picked from commit 2bf56594e78ab7b01ee85c1d885c92cb469dfdf2)

Change-Id: I4e9f4ab0b8ff215c39d854ee041c1acfedcf0b6d

8 years agoAdd oat checksum check for app image loading
Mathieu Chartier [Fri, 29 Jan 2016 20:22:17 +0000 (12:22 -0800)]
Add oat checksum check for app image loading

Bug: 26846419
Bug: 22858531

Change-Id: If30028b7d6b5749f5bdbed0c219d014a3b50a11b

8 years agoMerge "Add a comment on ReadBarrier::Mark() about ALWAYS_INLINE."
Hiroshi Yamauchi [Fri, 29 Jan 2016 22:18:47 +0000 (22:18 +0000)]
Merge "Add a comment on ReadBarrier::Mark() about ALWAYS_INLINE."

8 years agoMerge "Fix issue with exception type resolution during linking."
Alex Light [Fri, 29 Jan 2016 21:42:26 +0000 (21:42 +0000)]
Merge "Fix issue with exception type resolution during linking."

8 years agoMerge "Do not use atomic increment in allocation as fence."
Hans Boehm [Fri, 29 Jan 2016 20:40:09 +0000 (20:40 +0000)]
Merge "Do not use atomic increment in allocation as fence."

8 years agoFix issue with exception type resolution during linking.
Alex Light [Fri, 29 Jan 2016 20:24:48 +0000 (12:24 -0800)]
Fix issue with exception type resolution during linking.

When using default methods that cross dex-files we would sometimes
attempt to lookup method information using the wrong dex file. This
fixes this issue.

Bug: 26872564

Change-Id: I3c4b64ef970017356962060f3bd3781b4629a3c8

8 years agoAdd a comment on ReadBarrier::Mark() about ALWAYS_INLINE.
Hiroshi Yamauchi [Fri, 29 Jan 2016 20:06:36 +0000 (12:06 -0800)]
Add a comment on ReadBarrier::Mark() about ALWAYS_INLINE.

This is a follow up on CL 199360.

Bug: 12687968
Bug: 26744236
Change-Id: I9930894a403e897b85d77caf92834afaa9a860a0

8 years agoMerge "Implement compare() on ARM64."
Aart Bik [Fri, 29 Jan 2016 19:01:38 +0000 (19:01 +0000)]
Merge "Implement compare() on ARM64."

8 years agoMerge "ART: Dump full exception on re-init failure message"
Andreas Gampe [Fri, 29 Jan 2016 18:50:18 +0000 (18:50 +0000)]
Merge "ART: Dump full exception on re-init failure message"