OSDN Git Service

android-x86/art.git
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 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"

8 years agoImplement compare() on ARM64.
Aart Bik [Thu, 28 Jan 2016 22:36:22 +0000 (14:36 -0800)]
Implement compare() on ARM64.

Change-Id: I6b5982aeb7401cd90fc37431a72bdd2b7f3e322b

8 years agoMerge "Implementation of integer intrinsics on x86_64"
Aart Bik [Fri, 29 Jan 2016 17:43:30 +0000 (17:43 +0000)]
Merge "Implementation of integer intrinsics on x86_64"

8 years agoMerge "Optimizing compiler support for directly calling interface methods"
Alex Light [Fri, 29 Jan 2016 17:38:57 +0000 (17:38 +0000)]
Merge "Optimizing compiler support for directly calling interface methods"

8 years agoMIPS64: Remove unaligned memory access from art generated code
Lazar Trsic [Thu, 3 Sep 2015 15:33:01 +0000 (17:33 +0200)]
MIPS64: Remove unaligned memory access from art generated code

Unaligned memory access was caused by sd, ld, ldc1 and sdc1
instructions. Check if offset is unaligned and replace it
with two 32 bit memory accesses, if so.

Added assembler tests for new instructions, as well as assembler
tests for LoadFromOffset, LoadFpuFromOffset, StoreToOffset and
StoreFpuToOffset.

Change-Id: I0228a4a2ce6c801eeb5b46952b8330e14468deb3

8 years agoART: Do not reopen oat file in ImageWriter::UpdateOatFile().
Vladimir Marko [Fri, 29 Jan 2016 16:27:27 +0000 (16:27 +0000)]
ART: Do not reopen oat file in ImageWriter::UpdateOatFile().

Instead, pass the already opened file from Dex2Oat.

Bug: 26831001
Change-Id: I2341259499067f43ce620b590c5482d28f140e9f

8 years agoMerge "Disable test after failing test was pushed."
Nicolas Geoffray [Fri, 29 Jan 2016 13:45:43 +0000 (13:45 +0000)]
Merge "Disable test after failing test was pushed."

8 years agoDisable test after failing test was pushed.
Nicolas Geoffray [Fri, 29 Jan 2016 13:38:33 +0000 (13:38 +0000)]
Disable test after failing test was pushed.

bug:26869497

Change-Id: I950b9fc164b512290d96d0137957348006796338

8 years agoMerge "Re-enable test 566-polymorphic-inlining."
Nicolas Geoffray [Fri, 29 Jan 2016 12:09:43 +0000 (12:09 +0000)]
Merge "Re-enable test 566-polymorphic-inlining."

8 years agoRe-enable test 566-polymorphic-inlining.
Nicolas Geoffray [Fri, 29 Jan 2016 11:41:25 +0000 (11:41 +0000)]
Re-enable test 566-polymorphic-inlining.

- Can not rely on debug builds.
- Need to wait for the method to be compiled.

Change-Id: I26ce89075075da8555fd59ade56bd04bec23f4ce

8 years agoMerge "Re-enable test 496-checker-inlining-and-class-loader with CC."
Roland Levillain [Fri, 29 Jan 2016 11:53:50 +0000 (11:53 +0000)]
Merge "Re-enable test 496-checker-inlining-and-class-loader with CC."

8 years agoRe-enable test 496-checker-inlining-and-class-loader with CC.
Roland Levillain [Fri, 29 Jan 2016 11:37:48 +0000 (11:37 +0000)]
Re-enable test 496-checker-inlining-and-class-loader with CC.

This test might have been affected by an app image change.
Re-enable it so that we can monitor it on the concurrent
collector configurations.

Bug: 26786304
Bug: 12687968
Change-Id: Iab484418d4a507da6642eec86317d53cc0a2607a

8 years agoMerge "Optimizing: Use dex pc 0 for pattern substitution-generated IGET."
Vladimir Marko [Fri, 29 Jan 2016 11:08:21 +0000 (11:08 +0000)]
Merge "Optimizing: Use dex pc 0 for pattern substitution-generated IGET."

8 years agoMerge "ART: Do not use AT register in MIPS DSS<->RP swap"
David Brazdil [Fri, 29 Jan 2016 11:05:33 +0000 (11:05 +0000)]
Merge "ART: Do not use AT register in MIPS DSS<->RP swap"

8 years agoOptimizing: Use dex pc 0 for pattern substitution-generated IGET.
Vladimir Marko [Fri, 29 Jan 2016 10:24:41 +0000 (10:24 +0000)]
Optimizing: Use dex pc 0 for pattern substitution-generated IGET.

In the read barrier configuration, HInstanceFieldGet needs
a slow-path with a runtime call with an associated stack map
and we assert that we have a valid dex pc for stack maps.
Fix the pattern substitution-generated HInstanceFieldGet to
use the valid, if bogus, dex pc 0.

Bug: 26854537
Bug: 12687968

Change-Id: I9f379ea530ce3f89af8db40169a6c41b525abbd7

8 years agoMerge "Revert "reflection: Add new 1.8 AnnotatedElement methods and tests""
Nicolas Geoffray [Fri, 29 Jan 2016 10:25:28 +0000 (10:25 +0000)]
Merge "Revert "reflection: Add new 1.8 AnnotatedElement methods and tests""

8 years agoRevert "reflection: Add new 1.8 AnnotatedElement methods and tests"
Nicolas Geoffray [Fri, 29 Jan 2016 10:25:01 +0000 (10:25 +0000)]
Revert "reflection: Add new 1.8 AnnotatedElement methods and tests"

Breaks interpreter access checks:

+Exception in thread "main" java.lang.InternalError: java.lang.IllegalAccessError: Method 'void java.lang.reflect.Proxy.doNewInstanceCheck()' is inaccessible to class '$Proxy0' (declaration of '$Proxy0' appears in generated class)

This reverts commit c167ee9b65f05f7c6f007d587fd1655388edaee9.

Change-Id: I6c9429cb6f298e89a2da22f7ded0728251321446

8 years agoART: Do not use AT register in MIPS DSS<->RP swap
David Brazdil [Fri, 29 Jan 2016 09:50:09 +0000 (09:50 +0000)]
ART: Do not use AT register in MIPS DSS<->RP swap

LoadFromOffset clobbers AT if stack offset does not fit in int16_t.
We should never hit that limit but let's stay on the safe side.

Change-Id: I77f564dc3edd0b47d06f8fafb5610c7c0205e9b2

8 years agoMerge "ART: Fix single-step interpretation for mterp"
Bill Buzbee [Fri, 29 Jan 2016 03:33:23 +0000 (03:33 +0000)]
Merge "ART: Fix single-step interpretation for mterp"

8 years agoDo not use atomic increment in allocation as fence.
Hans Boehm [Fri, 29 Jan 2016 01:19:15 +0000 (17:19 -0800)]
Do not use atomic increment in allocation as fence.

A sequentially consistent fetch_and_add implemented with ARM v8 acquire
release operations is not a fence.  Don't use it as one.

The result may also be somewhat faster, since a sequentially consistent
increment requires more fencing than needed for the increment.

Bug: 16377103
Change-Id: I5b1add098d3488aa755f140612e54521b80aa749

8 years agoART: Fix single-step interpretation for mterp
buzbee [Thu, 28 Jan 2016 23:48:55 +0000 (15:48 -0800)]
ART: Fix single-step interpretation for mterp

For bring-up (and failover) purposes, mterp can bail out to the
switch interpreter to handle a single opcode.  This CL fixes the
handoff of the result register (a bug that was masked by an earlier
revision which passed it around by reference, rather than by value.

Change-Id: Iba9e1576f52b3660348c89466438bdc0526227d0

8 years agoMerge "Fix "Never Interpret" option for all interpreters"
Bill Buzbee [Thu, 28 Jan 2016 23:59:33 +0000 (23:59 +0000)]
Merge "Fix "Never Interpret" option for all interpreters"

8 years agoFix "Never Interpret" option for all interpreters
buzbee [Thu, 28 Jan 2016 22:20:06 +0000 (14:20 -0800)]
Fix "Never Interpret" option for all interpreters

CL 196596 added support for an option to bypass interpretation.
However, it only covers 2 our of 3 interpreters (missing mterp).
This change moves the control up a level to the common interpreter
entry where it will take effect before we select which interpreter
to use.

Also, it corrects a somewhat academic bug in that the existing
code that assumes that (dex_pc == 0) means that we just entered a
method.  If a method's dex code internally branched to address 0,
we could issue bogus method entry events.  By moving this test up
a level, we should avoid this situation.  Note, though, that dx
would never generate this pattern, and it's hard to imagine even
hand-generated dex code that would trigger a deoptimization in this
situation.

Change-Id: I6684bbf63570e02f5b01ce423c656889a890de7d

8 years agoOptimizing compiler support for directly calling interface methods
Alex Light [Thu, 7 Jan 2016 22:49:16 +0000 (14:49 -0800)]
Optimizing compiler support for directly calling interface methods

This teaches the optimizing compiler how to perform invoke-super on
interfaces. This should make the invokes generally faster.

Bug: 24618811

Change-Id: I7f9b0fb1209775c1c8837ab5d21f8acba3cc72a5

8 years agoART: Dump full exception on re-init failure message
Andreas Gampe [Thu, 28 Jan 2016 23:31:39 +0000 (15:31 -0800)]
ART: Dump full exception on re-init failure message

It is a recurring issue to investigate the underlying issue. Just
dumping the top-level failure type is not very helpful. Take the
logcat hit and dump the full exception (including causes).

Change-Id: If071df9667473410222438e1c5f956c9b56b4d77

8 years agoMerge "Disable test for now."
Nicolas Geoffray [Thu, 28 Jan 2016 23:08:56 +0000 (23:08 +0000)]
Merge "Disable test for now."

8 years agoDisable test for now.
Nicolas Geoffray [Thu, 28 Jan 2016 23:07:47 +0000 (23:07 +0000)]
Disable test for now.

Change-Id: Ibc7f2a2b1fb35c7b0b9d8a34b5e6adc243a67776

8 years agoMerge "Clear image file in image writer"
Mathieu Chartier [Thu, 28 Jan 2016 23:00:23 +0000 (23:00 +0000)]
Merge "Clear image file in image writer"

8 years agoMerge "Remove ALWAYS_INLINE from ReadBarrier::Mark()."
Hiroshi Yamauchi [Thu, 28 Jan 2016 21:52:56 +0000 (21:52 +0000)]
Merge "Remove ALWAYS_INLINE from ReadBarrier::Mark()."

8 years agoRemove ALWAYS_INLINE from ReadBarrier::Mark().
Hiroshi Yamauchi [Thu, 28 Jan 2016 21:39:41 +0000 (13:39 -0800)]
Remove ALWAYS_INLINE from ReadBarrier::Mark().

This fixes a Ritzperf EAAC performance regression in the read barrier
config.

Bug: 26744236
Bug: 12687968
Change-Id: Ieaeb57def0e3a9eeb5fd8b1234658b45fd31ce77

8 years agoMerge "Fix image test with GSS"
Mathieu Chartier [Thu, 28 Jan 2016 20:15:55 +0000 (20:15 +0000)]
Merge "Fix image test with GSS"

8 years agoFix image test with GSS
Mathieu Chartier [Thu, 28 Jan 2016 17:49:55 +0000 (09:49 -0800)]
Fix image test with GSS

There was a gap between image space and non moving space for some
reason. No time for a better fix.

Bug: 26849108

Change-Id: If7fe9db060b7accbffd1b4636ce4e0d82a02ed7b

8 years agoClear image file in image writer
Mathieu Chartier [Thu, 28 Jan 2016 20:02:00 +0000 (12:02 -0800)]
Clear image file in image writer

The goal is to not erase the image file in installd in case we abort
compilation due to no new profile data. Currently aborting results in
an empty image file.

Bug: 22858531
Change-Id: I32eee3391f860f4a373db3d746d096cc36d623f2

8 years agoImplementation of integer intrinsics on x86_64
Aart Bik [Thu, 28 Jan 2016 01:00:35 +0000 (17:00 -0800)]
Implementation of integer intrinsics on x86_64

Rationale:
Efficient implementations of common integer operations.
Already tested in:
  564-checker-bitcount
  565-checker-rotate:
  566-checker-signum
  567-checker-compare
  568-checker-onebit  (extended to deal with run-time zero)

Change-Id: Ib48c76eee751e7925056d7f26797e9a9b5ae60dd

8 years agoMerge "Remove some more read barriers in image relocation"
Mathieu Chartier [Thu, 28 Jan 2016 19:02:13 +0000 (19:02 +0000)]
Merge "Remove some more read barriers in image relocation"

8 years agoRemove some more read barriers in image relocation
Mathieu Chartier [Thu, 28 Jan 2016 02:37:48 +0000 (18:37 -0800)]
Remove some more read barriers in image relocation

Bug: 26786304
Bug: 22858531
Change-Id: I70dacae7657ebf6dac2b3dad7726eebe5a2b2649

8 years agoMerge "Doh. Forgot to ensure it's compiled."
Nicolas Geoffray [Thu, 28 Jan 2016 18:19:15 +0000 (18:19 +0000)]
Merge "Doh. Forgot to ensure it's compiled."

8 years agoMerge "Optimizing: Try pattern substitution when we cannot inline."
Vladimir Marko [Thu, 28 Jan 2016 18:16:14 +0000 (18:16 +0000)]
Merge "Optimizing: Try pattern substitution when we cannot inline."

8 years agoDoh. Forgot to ensure it's compiled.
Nicolas Geoffray [Thu, 28 Jan 2016 18:15:53 +0000 (18:15 +0000)]
Doh. Forgot to ensure it's compiled.

Change-Id: I7b1786497c6bd0e83d8afe70fabecfacc8ca6a3a

8 years agoMerge "Fix issue with IMT dispatch."
Alex Light [Thu, 28 Jan 2016 18:15:07 +0000 (18:15 +0000)]
Merge "Fix issue with IMT dispatch."

8 years agoOptimizing: Try pattern substitution when we cannot inline.
Vladimir Marko [Fri, 22 Jan 2016 12:09:44 +0000 (12:09 +0000)]
Optimizing: Try pattern substitution when we cannot inline.

Change-Id: I7c01f4494bac8498accc0f087044ec509fee4c98

8 years agoMerge "Stop verifier ResolveClass from putting unresolved classes in dex cache."
Jeff Hao [Thu, 28 Jan 2016 18:07:16 +0000 (18:07 +0000)]
Merge "Stop verifier ResolveClass from putting unresolved classes in dex cache."

8 years agoStop verifier ResolveClass from putting unresolved classes in dex cache.
Jeff Hao [Thu, 28 Jan 2016 03:14:53 +0000 (19:14 -0800)]
Stop verifier ResolveClass from putting unresolved classes in dex cache.

Bug: 26792072

(cherry-picked from commit 340bd820b1d7552417beb47325f12caea8ba718b)

Change-Id: I6d1b5aaa4a05e42881aebf9d907fc66fce2144ad

8 years agoMerge "Factor out common code for SetPendingNext."
Richard Uhler [Thu, 28 Jan 2016 18:01:12 +0000 (18:01 +0000)]
Merge "Factor out common code for SetPendingNext."

8 years agoMerge "ART: Add missing swaps to MIPS codegen"
David Brazdil [Thu, 28 Jan 2016 17:42:55 +0000 (17:42 +0000)]
Merge "ART: Add missing swaps to MIPS codegen"

8 years agoART: Add missing swaps to MIPS codegen
David Brazdil [Thu, 28 Jan 2016 17:14:52 +0000 (17:14 +0000)]
ART: Add missing swaps to MIPS codegen

Change-Id: I0fb50280ddf43f817d991c15d3b6cdeb4635d6c2