OSDN Git Service
Andreas Gampe [Thu, 17 Sep 2015 21:03:21 +0000 (14:03 -0700)]
ART: Clean up less in dex2oat
In non-debug builds, clean up even less. We already did not shut
down the runtime. Also skipping the compiler driver and the
verification results removes all major points of destructor
performance.
Tested with a common large app on Nexus 9. Time between dex2oat timing
message and executable exit (log from immediately-after log echo)
[w/o swap, w/ swap].
Before: 2.409s / 48.774s
After: 0.132s / 0.188s
Bug:
24199200
Change-Id: I5d8c17f8e28796545cfbb3887c07c92905f9b48d
Josh Gao [Thu, 17 Sep 2015 16:46:14 +0000 (16:46 +0000)]
Merge "Use arc4random_buf instead of getauxval(AT_RANDOM)."
Vladimir Marko [Thu, 17 Sep 2015 15:53:10 +0000 (15:53 +0000)]
Merge "Optimizing: Allow storing value objects in containers."
Vladimir Marko [Thu, 17 Sep 2015 15:32:33 +0000 (15:32 +0000)]
Merge "Optimizing: Do not use range-based loop when inserting elements."
Vladimir Marko [Thu, 17 Sep 2015 14:47:05 +0000 (15:47 +0100)]
Optimizing: Do not use range-based loop when inserting elements.
When we iterate over the elements of a container and we may
insert new elements into that container, it's wrong to use
the range-based loop.
Bug:
24133462
Change-Id: Iee35fbcf88ed3bcd6155cbeba09bd256032a16be
Vladimir Marko [Thu, 17 Sep 2015 14:39:16 +0000 (15:39 +0100)]
Optimizing: Allow storing value objects in containers.
Change-Id: Ic9c6b62e36706e571fd71c18d24d8e76ae2d5c7b
Nicolas Geoffray [Thu, 17 Sep 2015 14:18:03 +0000 (14:18 +0000)]
Merge "Optimize code generation of check-cast and instance-of."
Calin Juravle [Thu, 17 Sep 2015 14:05:27 +0000 (14:05 +0000)]
Merge "Revert "Support unresolved fields in optimizing" breaks debuggable tests."
Calin Juravle [Thu, 17 Sep 2015 14:04:33 +0000 (14:04 +0000)]
Revert "Support unresolved fields in optimizing"
breaks debuggable tests.
This reverts commit
23a8e35481face09183a24b9d11e505597c75ebb.
Change-Id: I8e60b5c8f48525975f25d19e5e8066c1c94bd2e5
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
Calin Juravle [Thu, 17 Sep 2015 12:29:09 +0000 (12:29 +0000)]
Merge "Support unresolved fields in optimizing"
Calin Juravle [Thu, 17 Sep 2015 12:29:02 +0000 (12:29 +0000)]
Merge "Support unresolved methods in Optimizing"
Calin Juravle [Thu, 17 Sep 2015 12:28:50 +0000 (12:28 +0000)]
Merge "BuildInvoke refactor: extract String.init in its own code path"
Calin Juravle [Tue, 8 Sep 2015 18:56:31 +0000 (19:56 +0100)]
Support unresolved fields in optimizing
Change-Id: I9941fa5fcb6ef0a7a253c7a0b479a44a0210aad4
Calin Juravle [Tue, 25 Aug 2015 14:42:32 +0000 (15:42 +0100)]
Support unresolved methods in Optimizing
Change-Id: If2da02b50d2fa668cd58f134a005f1752e7746b1
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
Josh Gao [Wed, 16 Sep 2015 23:27:00 +0000 (16:27 -0700)]
Use arc4random_buf instead of getauxval(AT_RANDOM).
Reclaim the AT_RANDOM bytes used by ART for bionic.
Bug: http://b/
23942752
Change-Id: Iceddce7f08fa887a7bb6828d75ef21426c413863
Andreas Gampe [Wed, 16 Sep 2015 20:51:55 +0000 (20:51 +0000)]
Merge "X86/X86_64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight"
Andreas Gampe [Wed, 16 Sep 2015 17:22:02 +0000 (17:22 +0000)]
Merge "ART: 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
Vladimir Marko [Wed, 16 Sep 2015 15:46:07 +0000 (15:46 +0000)]
Merge "Optimizing: 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
Andreas Gampe [Wed, 16 Sep 2015 15:30:56 +0000 (15:30 +0000)]
Merge "ART: Make dex2oat timing a bit more granular"
Calin Juravle [Wed, 16 Sep 2015 14:34:41 +0000 (14:34 +0000)]
Merge "Add option to append to the cfg dump."
Calin Juravle [Wed, 16 Sep 2015 14:33:16 +0000 (14:33 +0000)]
Merge "Add OptimizingCompilerStats to the CodeGenerator class."
Vladimir Marko [Wed, 16 Sep 2015 14:11:43 +0000 (14:11 +0000)]
Merge "Optimizing: Tag arena allocations in HGraph."
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>
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
Nicolas Geoffray [Wed, 16 Sep 2015 12:00:06 +0000 (12:00 +0000)]
Merge "Use 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
Andreas Gampe [Wed, 16 Sep 2015 04:21:39 +0000 (04:21 +0000)]
Merge "Additional MIPS64 instructions needed by intrinsics code."
Aart Bik [Wed, 16 Sep 2015 04:13:03 +0000 (04:13 +0000)]
Merge "Use induction variable range analysis in BCE (statically)."
Andreas Gampe [Wed, 16 Sep 2015 03:41:47 +0000 (03:41 +0000)]
Merge "X86: Use short forward jumps if possible"
Mathieu Chartier [Wed, 16 Sep 2015 03:35:08 +0000 (03:35 +0000)]
Merge "Clean up mod union table"
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
Andreas Gampe [Wed, 16 Sep 2015 02:58:04 +0000 (02:58 +0000)]
Merge "Support X86 intrinsic System.arraycopy char"
Andreas Gampe [Wed, 16 Sep 2015 02:56:18 +0000 (02:56 +0000)]
Merge "Add 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>
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
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
Hiroshi Yamauchi [Tue, 15 Sep 2015 17:54:44 +0000 (17:54 +0000)]
Merge "Expect 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
Mathieu Chartier [Tue, 15 Sep 2015 17:03:55 +0000 (17:03 +0000)]
Merge "Use 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
David Brazdil [Tue, 15 Sep 2015 17:01:47 +0000 (17:01 +0000)]
Merge "Rename 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
Sebastien Hertz [Tue, 15 Sep 2015 16:54:02 +0000 (16:54 +0000)]
Merge "Cleanup thread access in StackVisitor"
David Brazdil [Tue, 15 Sep 2015 16:52:02 +0000 (16:52 +0000)]
Merge "ART: 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
Nicolas Geoffray [Tue, 15 Sep 2015 15:59:53 +0000 (15:59 +0000)]
Merge "Use $ 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
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
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"""
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
David Brazdil [Tue, 15 Sep 2015 11:11:49 +0000 (11:11 +0000)]
Merge "ART: Fix bug in reference type propagation"
Nicolas Geoffray [Tue, 15 Sep 2015 11:01:11 +0000 (11:01 +0000)]
Merge "Temporarly disable SSA creation in try/catch/debuggable."
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
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
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
Pirama Arumuga Nainar [Mon, 14 Sep 2015 21:47:03 +0000 (21:47 +0000)]
Merge "Revert "Revert "Re-enable Clang's -Wpessimizing-move"""
David Brazdil [Mon, 14 Sep 2015 21:27:03 +0000 (21:27 +0000)]
Merge "Revert "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
Mathieu Chartier [Mon, 14 Sep 2015 21:02:07 +0000 (21:02 +0000)]
Merge "Convert ART benchmarks into caliper benchmarks"
Andreas Gampe [Mon, 14 Sep 2015 21:01:30 +0000 (21:01 +0000)]
Merge "ART: 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
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
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
Andreas Gampe [Mon, 14 Sep 2015 20:37:48 +0000 (20:37 +0000)]
Merge "ART: Build tests in checkbuild"
David Brazdil [Mon, 14 Sep 2015 19:44:35 +0000 (19:44 +0000)]
Merge "ART: 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
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
Pirama Arumuga Nainar [Mon, 14 Sep 2015 18:04:34 +0000 (18:04 +0000)]
Merge "Remove 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
Hiroshi Yamauchi [Mon, 14 Sep 2015 17:36:34 +0000 (17:36 +0000)]
Merge "Fix 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
Pirama Arumuga Nainar [Mon, 14 Sep 2015 16:50:58 +0000 (16:50 +0000)]
Merge "Revert "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
Pirama Arumuga Nainar [Mon, 14 Sep 2015 16:21:09 +0000 (16:21 +0000)]
Merge "Re-enable Clang's -Wpessimizing-move"
Nicolas Geoffray [Mon, 14 Sep 2015 13:47:18 +0000 (13:47 +0000)]
Merge "Be very patient with the emulator."
Vladimir Marko [Mon, 14 Sep 2015 11:43:25 +0000 (11:43 +0000)]
Merge "Optimizing: Tag basic block allocations with their source."
Vladimir Marko [Mon, 14 Sep 2015 10:42:01 +0000 (10:42 +0000)]
Merge "ART: Add some utilities for working with containers."
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
Pirama Arumuga Nainar [Sun, 13 Sep 2015 02:31:32 +0000 (02:31 +0000)]
Merge "Remove 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
Mathieu Chartier [Fri, 11 Sep 2015 21:20:54 +0000 (21:20 +0000)]
Merge "Add and use ScopedSuspendAll"
Mathieu Chartier [Fri, 11 Sep 2015 20:43:10 +0000 (20:43 +0000)]
Merge "Add benchmark for ScopedPrimitiveArray"
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
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
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"
Sebastien Hertz [Fri, 11 Sep 2015 15:40:48 +0000 (15:40 +0000)]
Merge "Support deoptimization on exception"
Nicolas Geoffray [Fri, 11 Sep 2015 14:13:08 +0000 (14:13 +0000)]
Merge "Record 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
Vladimir Marko [Fri, 11 Sep 2015 13:20:10 +0000 (13:20 +0000)]
Merge "ARM/ARM64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight"
Nicolas Geoffray [Fri, 11 Sep 2015 11:08:49 +0000 (12:08 +0100)]
Be very patient with the emulator.
Change-Id: I9f1f3a5d825fea85115b3331da317eefd3dbe17b
Scott Wakeling [Thu, 23 Jul 2015 09:44:35 +0000 (10:44 +0100)]
ARM/ARM64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight
Change-Id: I2a07c279756ee804fb7c129416bdc4a3962e93ed
Andreas Gampe [Fri, 11 Sep 2015 03:10:58 +0000 (03:10 +0000)]
Merge "ART: 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
Andreas Gampe [Fri, 11 Sep 2015 01:35:46 +0000 (01:35 +0000)]
Merge "ART: 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
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