OSDN Git Service

android-x86/art.git
8 years agoOptimize code generation of check-cast and instance-of.
Nicolas Geoffray [Mon, 14 Sep 2015 21:20:29 +0000 (22:20 +0100)]
Optimize code generation of check-cast and instance-of.

On x86/x64/arm/arm64. Improve code size of selected apks from 0.3% to 1%,
and performance of DeltaBlue by 20%.

Change-Id: Ib5799f7a53443cd880a121dd7f21932ae9f5c7aa

8 years agoMerge "Support unresolved fields in optimizing"
Calin Juravle [Thu, 17 Sep 2015 12:29:09 +0000 (12:29 +0000)]
Merge "Support unresolved fields in optimizing"

8 years agoMerge "Support unresolved methods in Optimizing"
Calin Juravle [Thu, 17 Sep 2015 12:29:02 +0000 (12:29 +0000)]
Merge "Support unresolved methods in Optimizing"

8 years agoMerge "BuildInvoke refactor: extract String.init in its own code path"
Calin Juravle [Thu, 17 Sep 2015 12:28:50 +0000 (12:28 +0000)]
Merge "BuildInvoke refactor: extract String.init in its own code path"

8 years agoSupport unresolved fields in optimizing
Calin Juravle [Tue, 8 Sep 2015 18:56:31 +0000 (19:56 +0100)]
Support unresolved fields in optimizing

Change-Id: I9941fa5fcb6ef0a7a253c7a0b479a44a0210aad4

8 years agoSupport unresolved methods in Optimizing
Calin Juravle [Tue, 25 Aug 2015 14:42:32 +0000 (15:42 +0100)]
Support unresolved methods in Optimizing

Change-Id: If2da02b50d2fa668cd58f134a005f1752e7746b1

8 years agoBuildInvoke refactor: extract String.init in its own code path
Calin Juravle [Tue, 25 Aug 2015 14:02:42 +0000 (15:02 +0100)]
BuildInvoke refactor: extract String.init in its own code path

This makes it clear that we special handle String init. Getting rid of
all `if (is_string_init)` improves readability into what we actually do
and expect for strings.

Change-Id: I9b4fba4c3ea89e0003c0704335cbe80e874d0e15

8 years agoMerge "X86/X86_64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight"
Andreas Gampe [Wed, 16 Sep 2015 20:51:55 +0000 (20:51 +0000)]
Merge "X86/X86_64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight"

8 years agoMerge "ART: Skip compiler-driver compile loop for VerifyAtRuntime"
Andreas Gampe [Wed, 16 Sep 2015 17:22:02 +0000 (17:22 +0000)]
Merge "ART: Skip compiler-driver compile loop for VerifyAtRuntime"

8 years agoART: Skip compiler-driver compile loop for VerifyAtRuntime
Andreas Gampe [Wed, 16 Sep 2015 00:55:06 +0000 (17:55 -0700)]
ART: Skip compiler-driver compile loop for VerifyAtRuntime

We don't compile (not even dex-to-dex) anyways, so skip iterating
over all methods. Shows a ~10% improvement of boot image compile
time on Nexus 9. Shows a ~40% improvement for a common large app
on the same device. Most of the remaining time is unzipping dex
files.

Bug: 24103765
Change-Id: I00931fd062a0a2297d1c7b90794302cb664571cc

8 years agoMerge "Optimizing: Tag arena allocations in SsaBuilder."
Vladimir Marko [Wed, 16 Sep 2015 15:46:07 +0000 (15:46 +0000)]
Merge "Optimizing: Tag arena allocations in SsaBuilder."

8 years agoOptimizing: Tag arena allocations in SsaBuilder.
Vladimir Marko [Tue, 15 Sep 2015 14:33:14 +0000 (15:33 +0100)]
Optimizing: Tag arena allocations in SsaBuilder.

Replace GrowableArray with ArenaVector in SsaBuilder and
tag allocations with a new arena allocation type.

Change-Id: I27312c51d7be9d2ad02a974cce93b365c65c5fc4

8 years agoMerge "ART: Make dex2oat timing a bit more granular"
Andreas Gampe [Wed, 16 Sep 2015 15:30:56 +0000 (15:30 +0000)]
Merge "ART: Make dex2oat timing a bit more granular"

8 years agoMerge "Add option to append to the cfg dump."
Calin Juravle [Wed, 16 Sep 2015 14:34:41 +0000 (14:34 +0000)]
Merge "Add option to append to the cfg dump."

8 years agoMerge "Add OptimizingCompilerStats to the CodeGenerator class."
Calin Juravle [Wed, 16 Sep 2015 14:33:16 +0000 (14:33 +0000)]
Merge "Add OptimizingCompilerStats to the CodeGenerator class."

8 years agoMerge "Optimizing: Tag arena allocations in HGraph."
Vladimir Marko [Wed, 16 Sep 2015 14:11:43 +0000 (14:11 +0000)]
Merge "Optimizing: Tag arena allocations in HGraph."

8 years agoX86/X86_64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight
Mark Mendell [Wed, 16 Sep 2015 01:45:18 +0000 (21:45 -0400)]
X86/X86_64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight

Implement {Long,Integer}NumberOfTrailingZeros and
{Long,Integer}Rotate{Left,Right}.

X86 32 bit mode doesn't implement the LongRotate{Left,Right} intrinsics
at this time.

Change-Id: Ie25c1dca15ee2d17fbdf0c15c758bde431034d35
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
8 years agoOptimizing: Tag arena allocations in HGraph.
Vladimir Marko [Tue, 15 Sep 2015 09:15:55 +0000 (10:15 +0100)]
Optimizing: Tag arena allocations in HGraph.

Replace GrowableArray with ArenaVector in HGraph and related
classes HEnvironment, HLoopInformation, HInvoke and HPhi,
and tag allocations with new arena allocation types.

Change-Id: I3d79897af405b9a1a5b98bfc372e70fe0b3bc40d

8 years agoMerge "Use clang for building mips32r2_fp."
Nicolas Geoffray [Wed, 16 Sep 2015 12:00:06 +0000 (12:00 +0000)]
Merge "Use clang for building mips32r2_fp."

8 years agoUse clang for building mips32r2_fp.
Nicolas Geoffray [Wed, 16 Sep 2015 11:58:57 +0000 (12:58 +0100)]
Use clang for building mips32r2_fp.

Otherwise, we get a linker error when building for
device/generic/art/mips32r2_fp.

Change-Id: Ie0bda1fdb807888d7afabd6f29c79ccc0d59ddbc

8 years agoMerge "Additional MIPS64 instructions needed by intrinsics code."
Andreas Gampe [Wed, 16 Sep 2015 04:21:39 +0000 (04:21 +0000)]
Merge "Additional MIPS64 instructions needed by intrinsics code."

8 years agoMerge "Use induction variable range analysis in BCE (statically)."
Aart Bik [Wed, 16 Sep 2015 04:13:03 +0000 (04:13 +0000)]
Merge "Use induction variable range analysis in BCE (statically)."

8 years agoMerge "X86: Use short forward jumps if possible"
Andreas Gampe [Wed, 16 Sep 2015 03:41:47 +0000 (03:41 +0000)]
Merge "X86: Use short forward jumps if possible"

8 years agoMerge "Clean up mod union table"
Mathieu Chartier [Wed, 16 Sep 2015 03:35:08 +0000 (03:35 +0000)]
Merge "Clean up mod union table"

8 years agoART: Make dex2oat timing a bit more granular
Andreas Gampe [Wed, 16 Sep 2015 03:04:54 +0000 (20:04 -0700)]
ART: Make dex2oat timing a bit more granular

Add scoped timing for runtime creation and dex file opening. Allows
comparing (JIT) compile time to specific overhead inherent to all
compilations.

Bug: 24103765
Change-Id: I1f83daa7015745bffa0cec3a3357b045c8493d6a

8 years agoMerge "Support X86 intrinsic System.arraycopy char"
Andreas Gampe [Wed, 16 Sep 2015 02:58:04 +0000 (02:58 +0000)]
Merge "Support X86 intrinsic System.arraycopy char"

8 years agoMerge "Add X86 bsf and rotate instructions"
Andreas Gampe [Wed, 16 Sep 2015 02:56:18 +0000 (02:56 +0000)]
Merge "Add X86 bsf and rotate instructions"

8 years agoAdd X86 bsf and rotate instructions
Mark Mendell [Wed, 16 Sep 2015 01:45:01 +0000 (21:45 -0400)]
Add X86 bsf and rotate instructions

These are for use in new intrinsics.  Bsf (Bit Scan Forward) is used in
{Long,Integer}NumberOfTrailingZeros and the rotates are used in
{Long,Integer}Rotate{Left,Right}.

Change-Id: Icb599d7e1eec4e4ea9e5b4f0b1654c7b8d4de678
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
8 years agoUse induction variable range analysis in BCE (statically).
Aart Bik [Thu, 10 Sep 2015 19:50:58 +0000 (12:50 -0700)]
Use induction variable range analysis in BCE (statically).

Rationale: Finally! After lots of very large CLs, now a small CL
           that uses the new induction variable analysis in BCE
           (statically, using this dynamically with de-opt is TBD).
           Despite its relative small size, be aware though,
           since the CL introduces a new phase to the compiler.

Change-Id: If5555a173fd5d55d147c63138ef51fc296fa1414

8 years agoClean up mod union table
Mathieu Chartier [Tue, 15 Sep 2015 21:07:10 +0000 (14:07 -0700)]
Clean up mod union table

Fixed some formatting and removed unused forward declarations.

Bug: 19534862
Change-Id: Icfd5143e5bb7be0570248fd0f4bbf97125a9a35b

8 years agoMerge "Expect null referent in DequeuePendingReference()."
Hiroshi Yamauchi [Tue, 15 Sep 2015 17:54:44 +0000 (17:54 +0000)]
Merge "Expect null referent in DequeuePendingReference()."

8 years agoExpect null referent in DequeuePendingReference().
Hiroshi Yamauchi [Mon, 14 Sep 2015 22:10:50 +0000 (15:10 -0700)]
Expect null referent in DequeuePendingReference().

Following up on CL 170735.

It's possible that the referent may potentially be cleared which would
cause a check failure. Avoid that.

Bug: 12687968
Bug: 23896462
Change-Id: I8ccc5936b61ceacf250624681e65307f23ce0405

8 years agoMerge "Use image pointer size for profile info"
Mathieu Chartier [Tue, 15 Sep 2015 17:03:55 +0000 (17:03 +0000)]
Merge "Use image pointer size for profile info"

8 years agoUse image pointer size for profile info
Mathieu Chartier [Tue, 15 Sep 2015 01:50:08 +0000 (18:50 -0700)]
Use image pointer size for profile info

May fix some random crashes in dex2oat due to cross compilation.

Change-Id: I633652500e8c7dfec38044dffd07eb467973d82a

8 years agoMerge "Rename parameter in ArtMethod::ToNativeQuickPc"
David Brazdil [Tue, 15 Sep 2015 17:01:47 +0000 (17:01 +0000)]
Merge "Rename parameter in ArtMethod::ToNativeQuickPc"

8 years agoRename parameter in ArtMethod::ToNativeQuickPc
David Brazdil [Tue, 15 Sep 2015 16:57:31 +0000 (17:57 +0100)]
Rename parameter in ArtMethod::ToNativeQuickPc

Addressing a nit for CL Idb2b34aabf1ac7249c30a00806af7d63d7e682dd.

Change-Id: I1112312b90aa6123e7e9ca8f67132dd7cc57a62f

8 years agoMerge "Cleanup thread access in StackVisitor"
Sebastien Hertz [Tue, 15 Sep 2015 16:54:02 +0000 (16:54 +0000)]
Merge "Cleanup thread access in StackVisitor"

8 years agoMerge "ART: Fix 004-ReferenceMap run test"
David Brazdil [Tue, 15 Sep 2015 16:52:02 +0000 (16:52 +0000)]
Merge "ART: Fix 004-ReferenceMap run test"

8 years agoART: Fix 004-ReferenceMap run test
David Brazdil [Tue, 15 Sep 2015 16:00:52 +0000 (17:00 +0100)]
ART: Fix 004-ReferenceMap run test

This patch adds a new option to ArtMethod::ToNativeQuickPc to select
the order of iteration over stack maps. The method is only used by
the runtime to find native_pc of catch blocks, but also by the
004-ReferenceMap test which uses it to find native_pc of a safepoint.

Change-Id: Idb2b34aabf1ac7249c30a00806af7d63d7e682dd

8 years agoMerge "Use $ for f registers to please clang."
Nicolas Geoffray [Tue, 15 Sep 2015 15:59:53 +0000 (15:59 +0000)]
Merge "Use $ for f registers to please clang."

8 years agoUse $ for f registers to please clang.
Nicolas Geoffray [Tue, 15 Sep 2015 15:36:50 +0000 (16:36 +0100)]
Use $ for f registers to please clang.

Change-Id: I723ce53e344ee98334a556fbe231d8588fa7d1b6

8 years agoAdd option to append to the cfg dump.
Calin Juravle [Mon, 24 Aug 2015 14:34:44 +0000 (15:34 +0100)]
Add option to append to the cfg dump.

This makes life easier when verifying tests with unresolved classes
(which call dex2oat at rutime).

Change-Id: I7985b2b7c0f343462e03a26b8395297c810b1d95

8 years agoMerge "Revert "Revert "ART: Register allocation and runtime support for try/catch"""
David Brazdil [Tue, 15 Sep 2015 12:34:35 +0000 (12:34 +0000)]
Merge "Revert "Revert "ART: Register allocation and runtime support for try/catch"""

8 years agoRevert "Revert "ART: Register allocation and runtime support for try/catch""
David Brazdil [Tue, 15 Sep 2015 12:34:04 +0000 (12:34 +0000)]
Revert "Revert "ART: Register allocation and runtime support for try/catch""

The original CL triggered b/24084144 which has been fixed
by Ib72e12a018437c404e82f7ad414554c66a4c6f8c.

This reverts commit 659562aaf133c41b8d90ec9216c07646f0f14362.

Change-Id: Id8980436172457d0fcb276349c4405f7c4110a55

8 years agoMerge "ART: Fix bug in reference type propagation"
David Brazdil [Tue, 15 Sep 2015 11:11:49 +0000 (11:11 +0000)]
Merge "ART: Fix bug in reference type propagation"

8 years agoMerge "Temporarly disable SSA creation in try/catch/debuggable."
Nicolas Geoffray [Tue, 15 Sep 2015 11:01:11 +0000 (11:01 +0000)]
Merge "Temporarly disable SSA creation in try/catch/debuggable."

8 years agoART: Fix bug in reference type propagation
David Brazdil [Tue, 15 Sep 2015 10:36:54 +0000 (11:36 +0100)]
ART: Fix bug in reference type propagation

Reference type propagation assumed that type is exact if the class is
final. This does not hold for arrays which are always final and the
component type needs to be considered.

Bug: 24084144
Change-Id: Ib72e12a018437c404e82f7ad414554c66a4c6f8c

8 years agoTemporarly disable SSA creation in try/catch/debuggable.
Nicolas Geoffray [Tue, 15 Sep 2015 10:01:01 +0000 (11:01 +0100)]
Temporarly disable SSA creation in try/catch/debuggable.

This is to enable optimizations when the debuggable flag is set.

bug:24054676

Change-Id: I34eef2481ae44ad3550e04ec6f796d421d03adc0

8 years agoCleanup thread access in StackVisitor
Sebastien Hertz [Tue, 15 Sep 2015 07:52:07 +0000 (09:52 +0200)]
Cleanup thread access in StackVisitor

Adds method StackVisitor::GetThread to give access to the visited
Thread* so we no longer need to copy that pointer in subclasses.

Also adds a few missing const and DISALLOW_COPY_AND_ASSIGN.

Change-Id: I57649ee7742ef4ef1e01447ac2fbb66f977b22eb

8 years agoMerge "Revert "Revert "Re-enable Clang's -Wpessimizing-move"""
Pirama Arumuga Nainar [Mon, 14 Sep 2015 21:47:03 +0000 (21:47 +0000)]
Merge "Revert "Revert "Re-enable Clang's -Wpessimizing-move"""

8 years agoMerge "Revert "ART: Register allocation and runtime support for try/catch""
David Brazdil [Mon, 14 Sep 2015 21:27:03 +0000 (21:27 +0000)]
Merge "Revert "ART: Register allocation and runtime support for try/catch""

8 years agoRevert "ART: Register allocation and runtime support for try/catch"
David Brazdil [Mon, 14 Sep 2015 21:26:33 +0000 (21:26 +0000)]
Revert "ART: Register allocation and runtime support for try/catch"

Breaks libcore test org.apache.harmony.security.tests.java.security.KeyStorePrivateKeyEntryTest#testGetCertificateChain. Need to investigate.

This reverts commit b022fa1300e6d78639b3b910af0cf85c43df44bb.

Change-Id: Ib24d3a80064d963d273e557a93469c95f37b1f6f

8 years agoMerge "Convert ART benchmarks into caliper benchmarks"
Mathieu Chartier [Mon, 14 Sep 2015 21:02:07 +0000 (21:02 +0000)]
Merge "Convert ART benchmarks into caliper benchmarks"

8 years agoMerge "ART: Fix mac build"
Andreas Gampe [Mon, 14 Sep 2015 21:01:30 +0000 (21:01 +0000)]
Merge "ART: Fix mac build"

8 years agoART: Fix mac build
Andreas Gampe [Mon, 14 Sep 2015 20:59:51 +0000 (13:59 -0700)]
ART: Fix mac build

Parameter is unused in the mac build. We now build the test libraries
in checkbuild, which exposed the issue.

Change-Id: Ib246d87927740e2e65a63111bdf0cc4f261b4c1c

8 years agoConvert ART benchmarks into caliper benchmarks
Mathieu Chartier [Sat, 12 Sep 2015 23:55:26 +0000 (16:55 -0700)]
Convert ART benchmarks into caliper benchmarks

Move the ART benchmarks into the benchmarks directory and make them
caliper friendly.

To run you need to build libartbenchmark.so and sync it then use
vogar --benchmark.

Bug: 24055147

Change-Id: Idc9caf8dc8022190d737840ba0eb9e356f9872cb

8 years agoRevert "Revert "Re-enable Clang's -Wpessimizing-move""
Pirama Arumuga Nainar [Mon, 14 Sep 2015 20:39:53 +0000 (20:39 +0000)]
Revert "Revert "Re-enable Clang's -Wpessimizing-move""

This reverts commit 4a37953377092ade93c15c72ad49cde4adaabd94.

Change-Id: Iae3bab9b104c1391070b329ef6a6a73b836189c8

8 years agoMerge "ART: Build tests in checkbuild"
Andreas Gampe [Mon, 14 Sep 2015 20:37:48 +0000 (20:37 +0000)]
Merge "ART: Build tests in checkbuild"

8 years agoMerge "ART: Register allocation and runtime support for try/catch"
David Brazdil [Mon, 14 Sep 2015 19:44:35 +0000 (19:44 +0000)]
Merge "ART: Register allocation and runtime support for try/catch"

8 years agoART: Register allocation and runtime support for try/catch
David Brazdil [Thu, 20 Aug 2015 16:47:48 +0000 (17:47 +0100)]
ART: Register allocation and runtime support for try/catch

This patch completes a series of CLs that add support for try/catch
in the Optimizing compiler. With it, Optimizing can compile all
methods containing try/catch, provided they don't contain catch loops.
Future work will focus on improving performance of the generated code.

SsaLivenessAnalysis was updated to propagate liveness information of
instructions live at catch blocks, and to keep location information on
instructions which may be caught by catch phis.

RegisterAllocator was extended to spill values used after catch, and
to allocate spill slots for catch phis. Catch phis generated for the
same vreg share a spill slot as the raw value must be the same.

Location builders and slow paths were updated to reflect the fact that
throwing an exception may not lead to escaping the method.

Instruction code generators are forbidden from using of implicit null
checks in try blocks as live registers need to be saved before handing
over to the runtime.

CodeGenerator emits a stack map for each catch block, storing locations
of catch phis. CodeInfo and StackMapStream recognize this new type of
stack map and store them separate from other stack maps to avoid dex_pc
conflicts.

After having found the target catch block to deliver an exception to,
QuickExceptionHandler looks up the dex register maps at the throwing
instruction and the catch block and copies the values over to their
respective locations.

The runtime-support approach was selected because it allows for the
best performance in the normal control-flow path, since no propagation
of catch phi values is necessary until the exception is thrown. In
addition, it also greatly simplifies the register allocation phase.

ConstantHoisting was removed from LICMTest because it instantiated
(now abstract) HConstant and was bogus anyway (constants are always in
the entry block).

Change-Id: Ie31038ad8e3ee0c13a5bbbbaf5f0b3e532310e4e

8 years agoART: Build tests in checkbuild
Andreas Gampe [Mon, 14 Sep 2015 18:18:12 +0000 (11:18 -0700)]
ART: Build tests in checkbuild

We should build the tests when a checkbuild is run. That is the
standard configuration to test that everything compiles.

Bug: 24059936
Change-Id: I5a72d9a1b7accdd3e0dcb14edaeccde7ec126d44

8 years agoMerge "Remove unnecessary std::move from test_dex_file_builder"
Pirama Arumuga Nainar [Mon, 14 Sep 2015 18:04:34 +0000 (18:04 +0000)]
Merge "Remove unnecessary std::move from test_dex_file_builder"

8 years agoRemove unnecessary std::move from test_dex_file_builder
Pirama Arumuga Nainar [Mon, 14 Sep 2015 18:00:16 +0000 (11:00 -0700)]
Remove unnecessary std::move from test_dex_file_builder

This stops Clang from warning about -Wpessimizing-move.

Change-Id: Id40acf1c398c615faf6486ef700df6975a5f013f

8 years agoMerge "Fix the DequeuePendingReference crash."
Hiroshi Yamauchi [Mon, 14 Sep 2015 17:36:34 +0000 (17:36 +0000)]
Merge "Fix the DequeuePendingReference crash."

8 years agoFix the DequeuePendingReference crash.
Hiroshi Yamauchi [Thu, 10 Sep 2015 23:01:30 +0000 (16:01 -0700)]
Fix the DequeuePendingReference crash.

In DequeuePendingReference, acknowledge a black/white Reference object
in the queue if its referent was marked right after it's enqueued.

Bug: 12687968
Bug: 23896462
Change-Id: I33c802e04e1688a54a70ad3935628e3853c46e44

8 years agoMerge "Revert "Re-enable Clang's -Wpessimizing-move""
Pirama Arumuga Nainar [Mon, 14 Sep 2015 16:50:58 +0000 (16:50 +0000)]
Merge "Revert "Re-enable Clang's -Wpessimizing-move""

8 years agoRevert "Re-enable Clang's -Wpessimizing-move"
Pirama Arumuga Nainar [Mon, 14 Sep 2015 16:50:30 +0000 (16:50 +0000)]
Revert "Re-enable Clang's -Wpessimizing-move"

This reverts commit 8f5d2d84efb90e7220dd42c7aa104dbc19c52f4e.

Change-Id: I24fa681c0639bc4bf7af1b821f620780cd7a474d

8 years agoMerge "Re-enable Clang's -Wpessimizing-move"
Pirama Arumuga Nainar [Mon, 14 Sep 2015 16:21:09 +0000 (16:21 +0000)]
Merge "Re-enable Clang's -Wpessimizing-move"

8 years agoMerge "Be very patient with the emulator."
Nicolas Geoffray [Mon, 14 Sep 2015 13:47:18 +0000 (13:47 +0000)]
Merge "Be very patient with the emulator."

8 years agoMerge "Optimizing: Tag basic block allocations with their source."
Vladimir Marko [Mon, 14 Sep 2015 11:43:25 +0000 (11:43 +0000)]
Merge "Optimizing: Tag basic block allocations with their source."

8 years agoMerge "ART: Add some utilities for working with containers."
Vladimir Marko [Mon, 14 Sep 2015 10:42:01 +0000 (10:42 +0000)]
Merge "ART: Add some utilities for working with containers."

8 years agoRe-enable Clang's -Wpessimizing-move
Pirama Arumuga Nainar [Sun, 13 Sep 2015 05:35:30 +0000 (22:35 -0700)]
Re-enable Clang's -Wpessimizing-move

The warning on variant_map.h is fixed by
https://android-review.googlesource.com/#/c/170745/.

Change-Id: I802dd26538637ff276b7c24c1f5bca280b0bc428

8 years agoMerge "Remove unnecessary std::move from variant_map.h"
Pirama Arumuga Nainar [Sun, 13 Sep 2015 02:31:32 +0000 (02:31 +0000)]
Merge "Remove unnecessary std::move from variant_map.h"

8 years agoRemove unnecessary std::move from variant_map.h
Pirama Arumuga Nainar [Sat, 12 Sep 2015 23:04:42 +0000 (16:04 -0700)]
Remove unnecessary std::move from variant_map.h

This triggers Clang's pessimizing-move warning.

Change-Id: Icb33643f28d1d159a87a17235c4d210209199dac

8 years agoMerge "Add and use ScopedSuspendAll"
Mathieu Chartier [Fri, 11 Sep 2015 21:20:54 +0000 (21:20 +0000)]
Merge "Add and use ScopedSuspendAll"

8 years agoMerge "Add benchmark for ScopedPrimitiveArray"
Mathieu Chartier [Fri, 11 Sep 2015 20:43:10 +0000 (20:43 +0000)]
Merge "Add benchmark for ScopedPrimitiveArray"

8 years agoAdd and use ScopedSuspendAll
Mathieu Chartier [Fri, 4 Sep 2015 20:26:21 +0000 (13:26 -0700)]
Add and use ScopedSuspendAll

Usage replaces most SuspendAll and ResumeAll calls.

Change-Id: I355683a5365876242cea85a656dcb58455f7a294

8 years agoAdd benchmark for ScopedPrimitiveArray
Mathieu Chartier [Fri, 4 Sep 2015 23:38:55 +0000 (16:38 -0700)]
Add benchmark for ScopedPrimitiveArray

TODO: Make this into a caliper benchmark.

Bug: 19664826
Change-Id: If1484a68cc62603f1d216b1662ca55cceac1d619

8 years agoMerge "ART: Fix Quick-style LR vs PC core spill mask bug"
Andreas Gampe [Fri, 11 Sep 2015 17:50:01 +0000 (17:50 +0000)]
Merge "ART: Fix Quick-style LR vs PC core spill mask bug"

8 years agoMerge "Support deoptimization on exception"
Sebastien Hertz [Fri, 11 Sep 2015 15:40:48 +0000 (15:40 +0000)]
Merge "Support deoptimization on exception"

8 years agoMerge "Record profiling information before Jitting."
Nicolas Geoffray [Fri, 11 Sep 2015 14:13:08 +0000 (14:13 +0000)]
Merge "Record profiling information before Jitting."

8 years agoRecord profiling information before Jitting.
Nicolas Geoffray [Fri, 21 Aug 2015 17:38:30 +0000 (18:38 +0100)]
Record profiling information before Jitting.

- Add a new instrumentation kind to record dynamic invokes.
- Use the JNI entry point field to store the profiling data.
- Record seen receivers for every dynamic invoke.

Change-Id: I2c1738ab2a72052d45964d055dc16b44b906e54c

8 years agoMerge "ARM/ARM64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight"
Vladimir Marko [Fri, 11 Sep 2015 13:20:10 +0000 (13:20 +0000)]
Merge "ARM/ARM64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight"

8 years agoBe very patient with the emulator.
Nicolas Geoffray [Fri, 11 Sep 2015 11:08:49 +0000 (12:08 +0100)]
Be very patient with the emulator.

Change-Id: I9f1f3a5d825fea85115b3331da317eefd3dbe17b

8 years agoARM/ARM64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight
Scott Wakeling [Thu, 23 Jul 2015 09:44:35 +0000 (10:44 +0100)]
ARM/ARM64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight

Change-Id: I2a07c279756ee804fb7c129416bdc4a3962e93ed

8 years agoMerge "ART: Narrow parameter types."
Andreas Gampe [Fri, 11 Sep 2015 03:10:58 +0000 (03:10 +0000)]
Merge "ART: Narrow parameter types."

8 years agoART: Narrow parameter types.
Andreas Gampe [Fri, 11 Sep 2015 03:09:11 +0000 (20:09 -0700)]
ART: Narrow parameter types.

Follow-up to e6215c0ec4b1bb71b722fdbf7e62eaf3be8a91d5. Those should
have been uint16_t.

Change-Id: I2cc13701eb937dad488bcf405a9a7b26eabb656e

8 years agoMerge "ART: Move access flags checking to dex file verifier"
Andreas Gampe [Fri, 11 Sep 2015 01:35:46 +0000 (01:35 +0000)]
Merge "ART: Move access flags checking to dex file verifier"

8 years agoART: Move access flags checking to dex file verifier
Andreas Gampe [Tue, 1 Sep 2015 01:54:38 +0000 (18:54 -0700)]
ART: Move access flags checking to dex file verifier

Actually implement all the access flags checking in the dex file
verifier. Add tests.

Change-Id: I8b797357831b588589d56d6e2e22f7b410f33008

8 years agoART: Fix Quick-style LR vs PC core spill mask bug
Andreas Gampe [Thu, 10 Sep 2015 23:11:06 +0000 (16:11 -0700)]
ART: Fix Quick-style LR vs PC core spill mask bug

It's always been a bug that Quick marked PC as spilled instead of
LR. The root cause was a mutation of the spill mask at frame exit,
when LR is being restored into PC to return. A local should have
been used to keep the actual spill mask safe and sound.

This has only worked because nobody ever uses LR, even after long
jumps for exception dispatch. However, single-frame deoptimization
needs this to work, and I'd rather fix this than being forced to
have machine-specific fixups.

Also fix in optimizing, and bump the oat version.

Change-Id: Ib032a533408bf464097fc96dcbfc5b6a68bf59a1

8 years agoMerge "Increase the run-test timeout for the read barrier config."
Hiroshi Yamauchi [Thu, 10 Sep 2015 23:32:47 +0000 (23:32 +0000)]
Merge "Increase the run-test timeout for the read barrier config."

8 years agoAdditional MIPS64 instructions needed by intrinsics code.
Chris Larsen [Fri, 14 Aug 2015 21:56:10 +0000 (14:56 -0700)]
Additional MIPS64 instructions needed by intrinsics code.

Change-Id: If2a48300aac7a10dadf485d1765fb5bdeed975fe

8 years agoIncrease the run-test timeout for the read barrier config.
Hiroshi Yamauchi [Thu, 10 Sep 2015 01:59:42 +0000 (18:59 -0700)]
Increase the run-test timeout for the read barrier config.

ThreadStress sometimes times out without hanging.

Bug: 23485091
Change-Id: Id6833c7887ece74aebafc6e1d5a8c772d7e0ae62

8 years agoMerge "Induction variable range analysis."
Aart Bik [Thu, 10 Sep 2015 17:33:44 +0000 (17:33 +0000)]
Merge "Induction variable range analysis."

8 years agoInduction variable range analysis.
Aart Bik [Tue, 8 Sep 2015 22:25:15 +0000 (15:25 -0700)]
Induction variable range analysis.

Rationale: by computing an upper bound on the trip count of each
           loop after induction var analysis has completed, a
   simple range analysis yields lower and upper bounds on
   all induced expressions in a loop; this analysis
   plugs directly into BCE (follow-up CL).

Change-Id: I46a3fe48721ca372547199b39a3498c47992597d

8 years agoSupport deoptimization on exception
Sebastien Hertz [Tue, 8 Sep 2015 15:03:36 +0000 (17:03 +0200)]
Support deoptimization on exception

Allows to deoptimize when an exception is being thrown. We only
deoptimize if an executable frame (starting from the catch handler)
needs to be executed with the interpreter.

Before executing deoptimized frames, the exception is restored. The
interpreter starts by handling this exception at the point of the
throwing instruction.

Bug: 23714835
Change-Id: I0c5f7d4b257644acf12210aae8e5b6bb0f4af1f7

8 years agoMerge "Add extra options to tools/run-jdwp-tests.sh"
Sebastien Hertz [Thu, 10 Sep 2015 10:31:05 +0000 (10:31 +0000)]
Merge "Add extra options to tools/run-jdwp-tests.sh"

8 years agoAdd extra options to tools/run-jdwp-tests.sh
Sebastien Hertz [Thu, 10 Sep 2015 10:03:51 +0000 (12:03 +0200)]
Add extra options to tools/run-jdwp-tests.sh

Adds options for local debugging:
--verbose: passes '-verbose:jdwp' to the debuggee command-line to
           enable JDWP verbose logs.
--test <name>: runs a specific test instead of the whole test
               suite.

Change-Id: Ia04dd26c16c0b6733bb1c8a1b15ec585a24872c8

8 years agoMerge "ART: Add missing GetInterfaceMethodIfProxy"
Andreas Gampe [Wed, 9 Sep 2015 17:15:23 +0000 (17:15 +0000)]
Merge "ART: Add missing GetInterfaceMethodIfProxy"

8 years agoART: Add missing GetInterfaceMethodIfProxy
Andreas Gampe [Wed, 9 Sep 2015 00:42:59 +0000 (17:42 -0700)]
ART: Add missing GetInterfaceMethodIfProxy

Add missing uses of GetInterfaceMethodIfProxy in reflection code.

Add a test case for a JNI call to a proxy method.

Bug: https://code.google.com/p/android-developer-preview/issues/detail?id=2973
Bug: 23886441
Change-Id: I5b66b64b5561fcee15d0314707d67e8abc02ce5b