OSDN Git Service
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>
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
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
Hiroshi Yamauchi [Thu, 10 Sep 2015 23:32:47 +0000 (23:32 +0000)]
Merge "Increase 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
Aart Bik [Thu, 10 Sep 2015 17:33:44 +0000 (17:33 +0000)]
Merge "Induction 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
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
Sebastien Hertz [Thu, 10 Sep 2015 10:31:05 +0000 (10:31 +0000)]
Merge "Add 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
Andreas Gampe [Wed, 9 Sep 2015 17:15:23 +0000 (17:15 +0000)]
Merge "ART: 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
Andreas Gampe [Wed, 9 Sep 2015 16:39:16 +0000 (16:39 +0000)]
Merge "Revert "Revert "Do a second check for testing intrinsic types."""
Nicolas Geoffray [Wed, 9 Sep 2015 13:16:59 +0000 (13:16 +0000)]
Merge "Add dex_pc to all HInstructions in builder."
Yevgeny Rouban [Mon, 7 Sep 2015 11:57:00 +0000 (17:57 +0600)]
Add dex_pc to all HInstructions in builder.
Optimizing compiler generates minimum debug line info that
is built using the dex_pc information about suspend points.
This is not enough for performance and debugging needs.
This patch makes all HInstructions contain
dex_pc and all allocations in the builder define this value.
Change-Id: I1d14aefe075189b7b1b41b4384c3499474c19afc
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
Signed-off-by: Serdjuk, Nikolay Y <nikolay.y.serdjuk@intel.com>
Nicolas Geoffray [Wed, 9 Sep 2015 10:04:41 +0000 (10:04 +0000)]
Merge "[optimizing] Add support for x86 constant area"
Andreas Gampe [Tue, 1 Sep 2015 15:45:02 +0000 (15:45 +0000)]
Revert "Revert "Do a second check for testing intrinsic types.""
This reverts commit
a14b9fef395b94fa9a32147862c198fe7c22e3d7.
When an intrinsic with invoke-type virtual is recognized, replace
the instruction with a new HInvokeStaticOrDirect.
Minimal update for dex-cache rework. Fix includes.
Change-Id: I1c8e735a2fa7cda4419f76ca0717125ef236d332
Hiroshi Yamauchi [Wed, 9 Sep 2015 01:35:11 +0000 (01:35 +0000)]
Merge "Allow null current thread in jni weak ref decode during shutdown."
Hiroshi Yamauchi [Wed, 9 Sep 2015 00:50:48 +0000 (17:50 -0700)]
Allow null current thread in jni weak ref decode during shutdown.
Fix a crash during a runtime shutdown for the read barrier config.
Bug:
23897251
Bug:
12687968
Change-Id: Iea0888cb6d052d4becddba289dc0ed121461e97d
Mark Mendell [Fri, 17 Apr 2015 16:49:27 +0000 (12:49 -0400)]
[optimizing] Add support for x86 constant area
Use the Quick trick of finding the address of the method by calling the
next instruction and popping the return address into a register. This
trick is used because of the lack of PC-relative addressing in 32 bit
mode on the X86.
Add a HX86ComputeBaseMethodAddress instruction to trigger generation
of the method address, which is referenced by instructions needing
access to the constant area.
Add a HX86LoadFromConstantTable instruction that takes a
HX86ComputeBaseMethodAddress and a HConstant that will be used to load
the value when needed.
Change Add/Sub/Mul/Div to detect a HX86LoadFromConstantTable right hand
side, and generate code that directly references the constant area.
Other uses will be added later.
Change the inputs to HReturn and HInvoke(s), replacing the FP constants
with HX86LoadFromConstantTable instead. This allows values to be
loaded from the constant area into the right location.
Port the X86_64 assembler constant area handling to the X86.
Use the new per-backend optimization framework to do this conversion.
Change-Id: I6d235a72238262e4f9ec0f3c88319a187f865932
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Vladimir Marko [Thu, 3 Sep 2015 13:35:12 +0000 (13:35 +0000)]
Optimizing: Tag basic block allocations with their source.
Replace GrowableArray with ArenaVector in HBasicBlock and,
to track the source of allocations, assign one new and two
Quick's arena allocation types to these vectors. Rename
kArenaAllocSuccessor to kArenaAllocSuccessors.
Bug:
23736311
Change-Id: Ib52e51698890675bde61f007fe6039338cf1a025
Vladimir Marko [Fri, 4 Sep 2015 11:47:41 +0000 (12:47 +0100)]
ART: Add some utilities for working with containers.
Add utility functions for searching, removing and replacing
existing values in a container, to be used with std::vector
(including the ArenaVector alias) and other containers.
Also move UniqueCPtr<> and MakeUnique() to base/stl_utils.h
and clean up related includes.
Change-Id: I1e61762df91c046866591bda167d42bf8b67a692
Aart Bik [Tue, 8 Sep 2015 16:21:14 +0000 (16:21 +0000)]
Merge "Simplify loop invariant operations during induction analysis."
Vladimir Marko [Tue, 8 Sep 2015 13:06:07 +0000 (13:06 +0000)]
Merge "ART: Clean up Thumb2Assembler's AddConstant()."
Vladimir Marko [Tue, 8 Sep 2015 11:16:45 +0000 (12:16 +0100)]
ART: Clean up Thumb2Assembler's AddConstant().
Change-Id: I6a4c32d1bba79879e5514059df6336dc331246c1
Aart Bik [Sat, 5 Sep 2015 01:22:11 +0000 (18:22 -0700)]
Simplify loop invariant operations during induction analysis.
Rationale:
Saves some memory for nodes that are not really required, and
yields slightly more readable debugging strings.
Change-Id: I95b64b48869699137b5d49e26eb20091e264de7a
Nicolas Geoffray [Mon, 7 Sep 2015 13:15:23 +0000 (13:15 +0000)]
Merge "Remove framework start from script."
Nicolas Geoffray [Mon, 7 Sep 2015 12:33:36 +0000 (13:33 +0100)]
Remove framework start from script.
It's not needed anymore, as it was a one-off instruction that
needed to be executed by the devices.
Change-Id: I5eadb74aee7a9cc03be71b6e5f53e0cfd8d2352f
Nicolas Geoffray [Mon, 7 Sep 2015 11:40:57 +0000 (11:40 +0000)]
Merge "Don't stop framework when testing."
Nicolas Geoffray [Mon, 7 Sep 2015 11:04:35 +0000 (12:04 +0100)]
Don't stop framework when testing.
It prevents our infra team from knowing if a device is responsive.
Change-Id: Ie62df378e6fd540bcbfa2982a67b40a0dce85cb8
Hiroshi Yamauchi [Sat, 5 Sep 2015 00:45:13 +0000 (00:45 +0000)]
Merge "Fix the read barrier config build."
Hiroshi Yamauchi [Sat, 5 Sep 2015 00:29:20 +0000 (17:29 -0700)]
Fix the read barrier config build.
Change-Id: I580d85609e8fa9b8c65466c6596d65bc3b155330
Aart Bik [Sat, 5 Sep 2015 00:25:41 +0000 (00:25 +0000)]
Merge "Further development of induction variable analysis."
Aart Bik [Thu, 27 Aug 2015 20:46:58 +0000 (13:46 -0700)]
Further development of induction variable analysis.
Various improvements:
(1) Introduced period sequences.
(2) Extended all transfer functions to deal with all cases;
also refactored these to read more compactly.
(3) Improved debugging output for constants for readability.
(4) Used direct pointer in mappings for clarify.
(5) Several induction info "constructors" for readability.
(6) Various other changes suggested in earlier code reviews.
Change-Id: I9d5381f1676b63d30cea6f5e304d4b7bda7acb96
Mathieu Chartier [Fri, 4 Sep 2015 23:43:18 +0000 (23:43 +0000)]
Merge "Make class loaders weak roots"
Mathieu Chartier [Thu, 3 Sep 2015 01:51:54 +0000 (18:51 -0700)]
Make class loaders weak roots
Making the class loaders weak roots in the class linker prevents them
from keeping the classes as live. However we currently do mark them
as strong roots to make sure no accidental class unloading occurs
until the logic to free from linear alloc is complete.
Bug:
22720414
Change-Id: I57466236d9ce6fd064dda9a30ce8ab68094fb8b0
Hiroshi Yamauchi [Fri, 4 Sep 2015 20:17:31 +0000 (20:17 +0000)]
Merge "Increase the run test failure output diff line count."
Hiroshi Yamauchi [Fri, 4 Sep 2015 19:52:03 +0000 (12:52 -0700)]
Increase the run test failure output diff line count.
If there are a lot of threads and deep stacks, we may not see the
beginning of the crash with the failure message.
Bug:
23485091
Change-Id: I854a05d9d9840f0ba10d6317396eb34e1da58c4d
Mathieu Chartier [Fri, 4 Sep 2015 18:24:43 +0000 (18:24 +0000)]
Merge "Fix art_quick_alloc_object_tlab"
Mathieu Chartier [Fri, 4 Sep 2015 17:40:01 +0000 (10:40 -0700)]
Fix art_quick_alloc_object_tlab
Was not updated for the new dex cache arrays.
Change-Id: I47b14fbaa071428abf87b18a045009a1c04d2376
Igor Murashkin [Fri, 4 Sep 2015 18:09:56 +0000 (18:09 +0000)]
Merge "lambda: Infrastructure to support capture/liberate-variable dex opcodes"
Mathieu Chartier [Fri, 4 Sep 2015 17:12:08 +0000 (17:12 +0000)]
Merge "Clean up formatting in class linker"
Mathieu Chartier [Fri, 4 Sep 2015 02:41:50 +0000 (19:41 -0700)]
Clean up formatting in class linker
Change-Id: Ifc27dbe0b5fcabec439602e02f4128c063e1b120
Vladimir Marko [Fri, 4 Sep 2015 16:16:50 +0000 (16:16 +0000)]
Merge "ART: Fix 466-get-live-vreg for read barrier."
Vladimir Marko [Fri, 4 Sep 2015 14:52:23 +0000 (15:52 +0100)]
ART: Fix 466-get-live-vreg for read barrier.
With the read barrier, the test is actually compiled but it
runs interpreted, so the vreg is successfully retrieved.
Fix the stack visitor to check if we have a compiled frame
before checking if the method is "Optimized".
Change-Id: I600eb7b5c0c2be1b9617e4d05401a711dac01738
Vladimir Marko [Fri, 4 Sep 2015 13:32:47 +0000 (13:32 +0000)]
Merge "ART: Abort if malloc() fails in SwapAllocator::allocate()."
Vladimir Marko [Fri, 4 Sep 2015 10:34:04 +0000 (10:34 +0000)]
Merge "ART: Move DexCache arrays to native."
Vladimir Marko [Fri, 4 Sep 2015 10:10:40 +0000 (11:10 +0100)]
ART: Abort if malloc() fails in SwapAllocator::allocate().
Change-Id: I084da8d376b0a86fc551b87d77ce9c74e60359bf
Mathieu Chartier [Fri, 4 Sep 2015 02:06:49 +0000 (02:06 +0000)]
Merge "Address some leftover comments"
Mathieu Chartier [Fri, 4 Sep 2015 01:10:29 +0000 (18:10 -0700)]
Address some leftover comments
Change-Id: Ia8d01c8b1c10d23efdd94aa76289a1ed3373957c
Mathieu Chartier [Fri, 4 Sep 2015 00:43:22 +0000 (00:43 +0000)]
Merge "Add ScopedThreadSuspension"
Mathieu Chartier [Thu, 3 Sep 2015 23:13:34 +0000 (16:13 -0700)]
Add ScopedThreadSuspension
Fixes the TransitionFromRunnableToSuspended and
TransitionFromSuspendedToRunnable pattern that was prone to errors.
Change-Id: Ie6ae9c0357c83b4fc4899d05dfa0975553170267
Igor Murashkin [Thu, 30 Jul 2015 22:11:09 +0000 (15:11 -0700)]
lambda: Infrastructure to support capture/liberate-variable dex opcodes
* ArtLambdaMethod - wrap an ArtMethod with extra runtime lambda info
* Closure - data representation for a runtime lambda closure (read-only)
* ClosureBuilder - writer for creating a Closure at runtime
* ShortyFieldType - char/enum wrapper for shorty_field_type in dex
Tests:
* Closure, ClosureBuilder, ShortyFieldType have full unit test coverage.
* ArtLambdaMethod does not, but it is tested indirectly and is otherwise
trivial getters.
Future CLs will include interpreter integration with minimal changes to
this Closure infrastructure.
Change-Id: I38a7aea8df1da7b154fd6623258c6c228c8e51df
Mathieu Chartier [Thu, 3 Sep 2015 22:11:02 +0000 (22:11 +0000)]
Merge "Reduce how often we call FindDexCache"
Mathieu Chartier [Wed, 2 Sep 2015 21:54:11 +0000 (14:54 -0700)]
Reduce how often we call FindDexCache
Before host boot.oat -j4 optimizing compile:
real 1m17.792s
user 3m26.140s
sys 0m8.340s
After:
real 1m12.324s
user 3m22.718s
sys 0m8.320s
Change-Id: If18e9e79e06cdf1676692e5efacb682bf93889c3