OSDN Git Service

android-x86/art.git
9 years agoMerge "Clean up Handle usage."
Mathieu Chartier [Mon, 25 Aug 2014 16:50:39 +0000 (16:50 +0000)]
Merge "Clean up Handle usage."

9 years agoClean up Handle usage.
Mathieu Chartier [Sat, 23 Aug 2014 23:37:27 +0000 (16:37 -0700)]
Clean up Handle usage.

Prefer using ConstHandle instead of Handle as function arguments
since you can't assign new references to ConstHandle which helps
prevent bugs.

Changed NullHandle to be a ConstHandle so that you can never modify
it to be a non null reference.

Change-Id: I81cb979f6f8d5b49e5614966a2caf28c3701dd4f

9 years agoMerge "ART: Clean up compiler"
Andreas Gampe [Sat, 23 Aug 2014 05:47:17 +0000 (05:47 +0000)]
Merge "ART: Clean up compiler"

9 years agoART: Clean up compiler
Andreas Gampe [Wed, 13 Aug 2014 06:19:23 +0000 (23:19 -0700)]
ART: Clean up compiler

Clean up the compiler: less extern functions, dis-entangle
compilers, hide some compiler specifics, lower global includes.

Change-Id: Ibaf88d02505d86994d7845cf0075be5041cc8438

9 years agoMerge "Add fallback for non moving space being full."
Mathieu Chartier [Sat, 23 Aug 2014 01:09:34 +0000 (01:09 +0000)]
Merge "Add fallback for non moving space being full."

9 years agoAdd fallback for non moving space being full.
Mathieu Chartier [Fri, 22 Aug 2014 21:53:04 +0000 (14:53 -0700)]
Add fallback for non moving space being full.

When the non moving space becomes full, we disable moving GC and
make the main space the new non moving space.

Also added a runtime option for changing the non moving space size:
-XX:NonMovingSpaceCapacity.

Bug: 17189964

(cherry picked from commit 4c5a469683e433f126c9863cd393747d2e7c4a29)

Change-Id: If82e3c6f8a0f389e37e14a0b1e6d5126d571fd7a

9 years agoMerge "ART: Support MIRGraph constant interface"
Ian Rogers [Fri, 22 Aug 2014 23:14:27 +0000 (23:14 +0000)]
Merge "ART: Support MIRGraph constant interface"

9 years agoART: Support MIRGraph constant interface
Razvan A Lupusoru [Mon, 4 Aug 2014 19:30:20 +0000 (12:30 -0700)]
ART: Support MIRGraph constant interface

-Adds a helper to be able to ask for a wide constant.
-Allows MIRGraph to provide interface to set constants.

Change-Id: Id282ee1604a0bd0bce6f495176d6bca35dcd5a00
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
9 years agoMerge "Using the correct time for wait_start_ms when lock contention logging is enabled"
Ian Rogers [Fri, 22 Aug 2014 21:59:25 +0000 (21:59 +0000)]
Merge "Using the correct time for wait_start_ms when lock contention logging is enabled"

9 years agoUsing the correct time for wait_start_ms when lock contention logging is enabled
Xin Guan [Fri, 22 Aug 2014 16:55:37 +0000 (11:55 -0500)]
Using the correct time for wait_start_ms when lock contention logging is enabled

Bug: 17208457
Change-Id: I35555e0acf3b37bb3776a62c64d59ae93403b237
(cherry picked from commit b894a19dfd668b6779de939cf5265b7e409d8809)

9 years agoMerge "ART: Reject field accesses to non-reference vregs."
Andreas Gampe [Fri, 22 Aug 2014 20:34:16 +0000 (20:34 +0000)]
Merge "ART: Reject field accesses to non-reference vregs."

9 years agoART: Reject field accesses to non-reference vregs.
Stephen Kyle [Fri, 22 Aug 2014 14:03:07 +0000 (15:03 +0100)]
ART: Reject field accesses to non-reference vregs.

The verifier will now reject any iget/iput insts
that do not have a reference object in vB.

Bug: 17207857
Change-Id: I2826f0f7abfc88561f4da9486588592f4b296d14
Signed-off-by: Stuart Monteith <stuart.monteith@arm.com>
9 years agoMerge "Handlerize MethodVerifier::mirror_method_."
Hiroshi Yamauchi [Fri, 22 Aug 2014 18:43:16 +0000 (18:43 +0000)]
Merge "Handlerize MethodVerifier::mirror_method_."

9 years agoHandlerize MethodVerifier::mirror_method_.
Hiroshi Yamauchi [Fri, 22 Aug 2014 18:13:12 +0000 (11:13 -0700)]
Handlerize MethodVerifier::mirror_method_.

The method (mirror_method_) wasn't handlerized across some
allocation/GC points such as the ResolveType() call in
ScanTryCatchBlocks() and the GetReturnType() calls in
CodeFlowVerifyInstruction().

Bug: 12687968
Change-Id: I95323de14459eb5a7c4abfcf44f882f86d59be64

9 years agoMerge "Fix testing wrong variable for non zygote."
Mathieu Chartier [Fri, 22 Aug 2014 17:30:28 +0000 (17:30 +0000)]
Merge "Fix testing wrong variable for non zygote."

9 years agoFix testing wrong variable for non zygote.
Mathieu Chartier [Fri, 22 Aug 2014 01:28:20 +0000 (18:28 -0700)]
Fix testing wrong variable for non zygote.

For non zygote we want to only have a single non moving space to
let dex2oat use RosAlloc for all allocations.

Fixed stale low memory logic in parsed options.

Bug: 17189964

(cherry picked from commit a12c2a945fe3f10d3ed31aa5db3e422cc1ad7f98)

Change-Id: I4fc00b277db6780ed410eab4cd969e8f004d5348

9 years agoMerge "Always setup the native bridge library"
Calin Juravle [Fri, 22 Aug 2014 17:12:00 +0000 (17:12 +0000)]
Merge "Always setup the native bridge library"

9 years agoAlways setup the native bridge library
Calin Juravle [Fri, 22 Aug 2014 11:53:59 +0000 (12:53 +0100)]
Always setup the native bridge library

... even if the string is empty. This will initialize the native bridge
library but mark it as unavailable.

- also, rename native_bridge_library_path to
native_bridge_library_filename to be closer to the actual meaning (it's
just the filename without any path).

Bug: 16404669

(cherry picked from commit I94628639691459d48d1fbf0841f36b68d51818e7)

Change-Id: I94628639691459d48d1fbf0841f36b68d51818e7

9 years agoMerge "GetDalvikDisassembly should work even without SSA info"
Ian Rogers [Fri, 22 Aug 2014 16:27:44 +0000 (16:27 +0000)]
Merge "GetDalvikDisassembly should work even without SSA info"

9 years agoMerge "ART: Fix frontend to allow possibility of multiple code units"
Ian Rogers [Fri, 22 Aug 2014 16:19:17 +0000 (16:19 +0000)]
Merge "ART: Fix frontend to allow possibility of multiple code units"

9 years agoMerge "ARM64: Avoid the duplication of condition codes."
Ian Rogers [Fri, 22 Aug 2014 14:48:40 +0000 (14:48 +0000)]
Merge "ARM64: Avoid the duplication of condition codes."

9 years agoMerge "AArch64: Improve MIR to LIR translation for abs"
Ian Rogers [Fri, 22 Aug 2014 14:33:14 +0000 (14:33 +0000)]
Merge "AArch64: Improve MIR to LIR translation for abs"

9 years agoARM64: Avoid the duplication of condition codes.
Alexandre Rames [Fri, 22 Aug 2014 13:08:36 +0000 (14:08 +0100)]
ARM64: Avoid the duplication of condition codes.

9 years agoMerge "ART: Add dex dependency for gtest"
Andreas Gampe [Fri, 22 Aug 2014 04:44:19 +0000 (04:44 +0000)]
Merge "ART: Add dex dependency for gtest"

9 years agoMerge "Fix signal test build"
Dave Allison [Fri, 22 Aug 2014 01:16:56 +0000 (01:16 +0000)]
Merge "Fix signal test build"

9 years agoFix signal test build
Dave Allison [Fri, 22 Aug 2014 00:22:38 +0000 (17:22 -0700)]
Fix signal test build

Bug: 17188805

(cherry picked from commit b9d6a55eb4eb5872739ed26ac535f0c6342e813b)

Change-Id: I0a271aa214eebe11a8442ebf68811e0d8f077d36

9 years agoMerge "Add supported architectures to signal test."
Dave Allison [Fri, 22 Aug 2014 01:12:53 +0000 (01:12 +0000)]
Merge "Add supported architectures to signal test."

9 years agoMerge "Fix fault handler to unregister on shutdown"
Dave Allison [Fri, 22 Aug 2014 01:12:30 +0000 (01:12 +0000)]
Merge "Fix fault handler to unregister on shutdown"

9 years agoMerge "Remove profiler log line"
Dave Allison [Fri, 22 Aug 2014 01:12:03 +0000 (01:12 +0000)]
Merge "Remove profiler log line"

9 years agoART: Add dex dependency for gtest
Andreas Gampe [Fri, 22 Aug 2014 01:04:38 +0000 (18:04 -0700)]
ART: Add dex dependency for gtest

Change-Id: I22d5e9b69e40585c6ee57381ee758b4b32e07f96

9 years agoMerge "ART: Remove a BasicBlock's fall_through pointer in Hide()"
Ian Rogers [Thu, 21 Aug 2014 23:44:23 +0000 (23:44 +0000)]
Merge "ART: Remove a BasicBlock's fall_through pointer in Hide()"

9 years agoMerge "Avoid handle-less fields in ClassLinker::InitializeClass()"
Hiroshi Yamauchi [Thu, 21 Aug 2014 23:34:51 +0000 (23:34 +0000)]
Merge "Avoid handle-less fields in ClassLinker::InitializeClass()"

9 years agoMerge "ART: Implement kMirOpNullCheck"
Ian Rogers [Thu, 21 Aug 2014 23:34:14 +0000 (23:34 +0000)]
Merge "ART: Implement kMirOpNullCheck"

9 years agoAvoid handle-less fields in ClassLinker::InitializeClass()
Hiroshi Yamauchi [Thu, 21 Aug 2014 22:59:43 +0000 (15:59 -0700)]
Avoid handle-less fields in ClassLinker::InitializeClass()

There were some handle-less fields in a SafeMap across GC points.

Bug: 12687968
Change-Id: Ib8c6527d4e23031f1d0074fa11d8f85499b68340

9 years agoMerge "Make a couple of map checks debug only."
Brian Carlstrom [Thu, 21 Aug 2014 22:58:24 +0000 (22:58 +0000)]
Merge "Make a couple of map checks debug only."

9 years agoMerge "Fix host 64-bit ISA string"
Andreas Gampe [Thu, 21 Aug 2014 22:18:06 +0000 (22:18 +0000)]
Merge "Fix host 64-bit ISA string"

9 years agoFix host 64-bit ISA string
Alex Light [Thu, 21 Aug 2014 17:00:27 +0000 (10:00 -0700)]
Fix host 64-bit ISA string

Bug: 1718561915358152

Change-Id: I5b80e36890abf659634c38ec7dd6fa336bf8a75a

9 years agoMake a couple of map checks debug only.
Narayan Kamath [Thu, 21 Aug 2014 16:38:09 +0000 (17:38 +0100)]
Make a couple of map checks debug only.

This cost us close to 80ms in app startup times.

The checks that a reused region was within an already
existent map has been demoted to a debug check.

A couple of other negative checks have been removed
outright because one of them was superflous and the other
wasn't guaranteed to be correct.

bug: 16828525

(cherry picked from commit bddaea2b88b0a19d9cc7a4dea772af8e829323b3)

Change-Id: Ia6f3e69692bb9cb5b4ff6f47946ea38a56d4cdb6

9 years agoMerge "ART: Remove GOT setup from x86 assembly where not needed"
Andreas Gampe [Thu, 21 Aug 2014 20:24:24 +0000 (20:24 +0000)]
Merge "ART: Remove GOT setup from x86 assembly where not needed"

9 years agoART: Remove GOT setup from x86 assembly where not needed
Andreas Gampe [Thu, 21 Aug 2014 01:21:45 +0000 (18:21 -0700)]
ART: Remove GOT setup from x86 assembly where not needed

Change-Id: Id839d6d6427da7b7faa4340e04085cdab388e9a5

9 years agoFix fault handler to unregister on shutdown
Dave Allison [Thu, 21 Aug 2014 00:38:41 +0000 (17:38 -0700)]
Fix fault handler to unregister on shutdown

This fixes a problem with the fault handler where it wasn't
unregistering itself during shutdown of the runtime.

Bug: 17133266

(cherry picked from commit e8b9afcd0cd86b8808af29a97332038aab70c604)

Change-Id: I1a4ec4292ec049046dda30769265680201729efb

9 years agoMerge "ART: A couple of checks were missed in class LockWord"
Ian Rogers [Thu, 21 Aug 2014 18:49:06 +0000 (18:49 +0000)]
Merge "ART: A couple of checks were missed in class LockWord"

9 years agoAdd supported architectures to signal test.
Dave Allison [Wed, 20 Aug 2014 21:29:39 +0000 (14:29 -0700)]
Add supported architectures to signal test.

This adds ARM, AARCH64, i386 and x86_64 to the supported architectures
in 004-SignalTest

Bug: 16948053

(cherry picked from commit d4af31aa69fe8786a291c566c375bbac04da9ced)

Change-Id: I17a992b2cf47f8744f867b8e3f1c360aa345093d

9 years agoRemove profiler log line
Dave Allison [Thu, 21 Aug 2014 16:45:04 +0000 (09:45 -0700)]
Remove profiler log line

This removes a LOG(INFO) saying that the profile is disabled.

Bug: 17166556

(cherry picked from commit b9c3888380666a7b44718f04f787693787cd57c6)

Change-Id: I9c9c470f554605a1183bcf84c5d864f9c4f24f72

9 years agoMerge "x86: A couple of minor changes for String.indexOf() inlining"
Ian Rogers [Thu, 21 Aug 2014 18:38:48 +0000 (18:38 +0000)]
Merge "x86: A couple of minor changes for String.indexOf() inlining"

9 years agoMerge "ART: Fix verifier fail message."
Ian Rogers [Thu, 21 Aug 2014 18:30:14 +0000 (18:30 +0000)]
Merge "ART: Fix verifier fail message."

9 years agoMerge "Fix OOM test case to handle more optimizations"
Ian Rogers [Thu, 21 Aug 2014 17:52:05 +0000 (17:52 +0000)]
Merge "Fix OOM test case to handle more optimizations"

9 years agoMerge "Check pending exception result in AllocObjectWithAllocator."
Mathieu Chartier [Thu, 21 Aug 2014 16:45:17 +0000 (16:45 +0000)]
Merge "Check pending exception result in AllocObjectWithAllocator."

9 years agoCheck pending exception result in AllocObjectWithAllocator.
Mathieu Chartier [Thu, 21 Aug 2014 01:19:23 +0000 (18:19 -0700)]
Check pending exception result in AllocObjectWithAllocator.

Possible previous bug:
Allocation fails due to OOM and the collector transitions.
This caused us to incorrectly retry the allocation with a pending
exception. We now return null if there is a pending exception.

Bug: 17164348

(cherry picked from commit 27f5ae830c5418fa92094608a6e9f693ea88bb69)

Change-Id: I8e7ecafbade7f0b955812df3dd7c94fdc696c856

9 years agoMerge "Fixed wrong field usage in Instrumentation::RemoveListener"
Sebastien Hertz [Thu, 21 Aug 2014 14:52:34 +0000 (14:52 +0000)]
Merge "Fixed wrong field usage in Instrumentation::RemoveListener"

9 years agoFixed wrong field usage in Instrumentation::RemoveListener
Daniel Mihalyi [Thu, 21 Aug 2014 13:57:25 +0000 (15:57 +0200)]
Fixed wrong field usage in Instrumentation::RemoveListener

Change-Id: I574fcacf754c1da1dc03459d5859b04bcebeac11
Signed-off-by: Daniel Mihalyi <daniel.mihalyi@mattakis.com>
9 years agoGetDalvikDisassembly should work even without SSA info
Serguei Katkov [Thu, 21 Aug 2014 09:43:54 +0000 (16:43 +0700)]
GetDalvikDisassembly should work even without SSA info

It is good if GetDalvikDisassembly can dump MIR even if
SSA register info is not available. Without this patch it
crashes.

Change-Id: I704c28c891cd2580a7819f7fd972167c3bf67ddc
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoMerge "Kill HAVE_ANDROID_PTHREAD_SETNAME_NP."
Elliott Hughes [Thu, 21 Aug 2014 04:13:56 +0000 (04:13 +0000)]
Merge "Kill HAVE_ANDROID_PTHREAD_SETNAME_NP."

9 years agoKill HAVE_ANDROID_PTHREAD_SETNAME_NP.
Elliott Hughes [Thu, 21 Aug 2014 03:18:18 +0000 (20:18 -0700)]
Kill HAVE_ANDROID_PTHREAD_SETNAME_NP.

All it means is __BIONIC__ anyway.

Change-Id: I3ef4ef1a14d0a77c75539f2ab533ee2f3964e1a5

9 years agoMerge "ART: Relax GetInstructionSetFromString"
Andreas Gampe [Thu, 21 Aug 2014 00:59:30 +0000 (00:59 +0000)]
Merge "ART: Relax GetInstructionSetFromString"

9 years agoART: Remove a BasicBlock's fall_through pointer in Hide()
Jean Christophe Beyler [Wed, 18 Jun 2014 21:14:15 +0000 (14:14 -0700)]
ART: Remove a BasicBlock's fall_through pointer in Hide()

Remove the fall_through link that a BasicBlock has to its child when
calling its Hide function.  Useful for removing the visible link that is
there when we dump the CFG.

Change-Id: Ie82c48b195d1d62e2984d284dcc29ed7d7444db2
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
9 years agoART: Relax GetInstructionSetFromString
Andreas Gampe [Wed, 20 Aug 2014 00:28:06 +0000 (17:28 -0700)]
ART: Relax GetInstructionSetFromString

Do not abort on an unknown instruction set string. Instead return
kNone and let the caller handle this.

Also simplify the patchoat tool to use this.

Bug: 17136416

(cherry picked from commit aabbb2066a715b3fd8e752291f74c6d77b970450)

Change-Id: I24131914bcf91c04ae93179bf809a2907f1f2b7a

9 years agoMerge "Make common BitVector operations inline-able."
Ian Rogers [Wed, 20 Aug 2014 23:22:57 +0000 (23:22 +0000)]
Merge "Make common BitVector operations inline-able."

9 years agoMake common BitVector operations inline-able.
Ian Rogers [Wed, 20 Aug 2014 22:08:45 +0000 (15:08 -0700)]
Make common BitVector operations inline-able.

Change-Id: Ie25de4fae56c6712539f04172c42e3eff57df7ca

9 years agoMerge "bionic has always had gettid."
Elliott Hughes [Wed, 20 Aug 2014 22:48:19 +0000 (22:48 +0000)]
Merge "bionic has always had gettid."

9 years agobionic has always had gettid.
Elliott Hughes [Wed, 20 Aug 2014 22:00:04 +0000 (15:00 -0700)]
bionic has always had gettid.

dex2oat calls GetTid for every line it outputs via Message, which is why
this showed up so much in strace.

Bug: 17049821
Change-Id: Ib51c7f88410b291692874023902cf43f4b9a9d1c

9 years agoART: Fix frontend to allow possibility of multiple code units
Razvan A Lupusoru [Mon, 7 Jul 2014 23:29:37 +0000 (16:29 -0700)]
ART: Fix frontend to allow possibility of multiple code units

This patch addresses a potential problem in frontend which refers
to the CompilationUnit's code unit. However, a MIRGraph may have
multiple code units and thus it makes sense to refer to the current
one being handled.

Change-Id: I69ca7b6056652109c969e7c583fc223e45315c96
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
9 years agoART: Implement kMirOpNullCheck
Razvan A Lupusoru [Mon, 4 Aug 2014 16:38:46 +0000 (09:38 -0700)]
ART: Implement kMirOpNullCheck

The semantics of kMirOpNullCheck is to check object for null and
throw exception in that case. However, the implementation for it
is empty. This has been changed and appropriate dataflow have been
added to correctly reflect behavior.

In order to allow testing of implementation, the SpecialMethodInliner
has been updated to get rid of invoke and use this instead. This helps
all optimizations which do not check the MIR_INLINED flag because
when invoke is left in, they believe that invoke will still be done.

Change-Id: I62e425e42bdbc6357246fb949db5f79de73cf358
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
9 years agoAArch64: Improve MIR to LIR translation for abs
Martyn Capewell [Thu, 7 Aug 2014 10:31:48 +0000 (11:31 +0100)]
AArch64: Improve MIR to LIR translation for abs

Improve translation by using a shorter and more efficient sequence for integer
abs, and replacing UBFM with AND for FP abs in integer registers.

Change-Id: Ifc39cd7806ed637d5cfc3284c435b5d501047eb5
Signed-off-by: Alexandre Rames <alexandre.rames@arm.com>
9 years agoMerge "Enable large object space for zygote."
Mathieu Chartier [Wed, 20 Aug 2014 17:00:48 +0000 (17:00 +0000)]
Merge "Enable large object space for zygote."

9 years agoEnable large object space for zygote.
Mathieu Chartier [Wed, 20 Aug 2014 01:24:04 +0000 (18:24 -0700)]
Enable large object space for zygote.

We now enable the large object space before the zygote fork.
This reduces the size of the zygote and removes the need for
excessive explicit GCs during phone booting.

Changed the card set mod union table to support forgetting cards.
If a card has no non null references which are in another space
then it is removed from the set.

Added logging of the zygote size when you do a SIGQUIT.

Dalvik PSS is the same or slightly lower (1-3%).

Zygote space size:
Before: 15MB
After: 8MB (+ some large objects).

TODO: Combine remembered sets and mod union tables into a single
interface.

Bug: 16398684
Change-Id: Ie48cdf35004a0a37eedb1ccc1bf214b1fa9e0cca

9 years agoMerge "Quick compiler: fix Arm64 inline locking code"
buzbee [Wed, 20 Aug 2014 13:33:58 +0000 (13:33 +0000)]
Merge "Quick compiler: fix Arm64 inline locking code"

9 years agoQuick compiler: fix Arm64 inline locking code
buzbee [Tue, 19 Aug 2014 23:47:06 +0000 (16:47 -0700)]
Quick compiler: fix Arm64 inline locking code

The Arm64 monitor enter code was incorrectly comparing the
thread ID to zero rather than the lock value to determine if the
inline fast path was doable.  As a result, we ended up always
using the out-of-line case.

internal b/16707253

Change-Id: I499530da84beecf1f3f5c5ebb666e3eb12599ac0

9 years agoMerge "Merge stack usage reduction for overflow checks"
Dave Allison [Wed, 20 Aug 2014 01:08:13 +0000 (01:08 +0000)]
Merge "Merge stack usage reduction for overflow checks"

9 years agoMerge stack usage reduction for overflow checks
Dave Allison [Thu, 14 Aug 2014 17:02:48 +0000 (17:02 +0000)]
Merge stack usage reduction for overflow checks

Cherry pick from: b038ba66a166fb264ca121632f447712e0973b5b

Change-Id: I19999e72ff731d4fc73d91b9ff767de5858c15ee

9 years agoFix OOM test case to handle more optimizations
Mark Mendell [Tue, 19 Aug 2014 02:19:06 +0000 (22:19 -0400)]
Fix OOM test case to handle more optimizations

The 080-oom-throw test case has some code in triggerInstanceOOM to
exhaust memory.  Unfortunately, a sufficiently intelligent compiler can
inline the call to memEater.confuseCompilerOptimization and realize that
it is a no-op.  In that case, the memEater variable is dead, and if a
compiler can improve the GC map, the only live heap data will be the
last allocated chunk.

Fix this by ensuring that the start of the chain (memEater) is really
live. Also ensure that it becomes dead before exiting the method, or the
subsequent println will fail allocating memory.

Change-Id: I345ebc3e19bd86e176c616ff18bcac4ed8dbb419
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoMerge "Really fix target gtest dependencies"
Brian Carlstrom [Mon, 18 Aug 2014 23:42:43 +0000 (23:42 +0000)]
Merge "Really fix target gtest dependencies"

9 years agoReally fix target gtest dependencies
Brian Carlstrom [Mon, 18 Aug 2014 23:07:10 +0000 (16:07 -0700)]
Really fix target gtest dependencies

In 64006834b26f7138131fac87c3b0973cda70e560 we started depending on
TARGET_CORE_JARS which are phony targets and undefined when using
"mm test-art-target".

Change-Id: I671c5d6068ff999782ad5f388f3077f4c1594884

9 years agoAttachCurrentThread should only warn on missing thread name if CheckJNI is enabled.
Brian Carlstrom [Mon, 18 Aug 2014 22:38:34 +0000 (15:38 -0700)]
AttachCurrentThread should only warn on missing thread name if CheckJNI is enabled.

Bug: 17108693
Change-Id: I346cc090e091605c552e5954d7ea1ca4874cea5f

9 years agoMerge "AttachCurrentThread should only warn on missing thread name if CheckJNI is...
Brian Carlstrom [Mon, 18 Aug 2014 23:42:35 +0000 (23:42 +0000)]
Merge "AttachCurrentThread should only warn on missing thread name if CheckJNI is enabled."

9 years agoART: Fix verifier fail message.
Elena Sayapina [Fri, 15 Aug 2014 08:52:42 +0000 (15:52 +0700)]
ART: Fix verifier fail message.

Verifier failure message is corrupted.
The verification failure reason overlaps verification failure location.
MethodVerifier::Fail() method creates failure message stream by
std::ostringstream(failure location) constructor which by default
sets the stream's position indicator to the begging of that stream.
Inserting failure reason to the stream by "<<" then overrides the failure location.
Using std::ostringstream(failure location, std::ostringstream::ate) fixes the issue
by setting the stream's position indicator to the end of the stream on opening.

Change-Id: I8cc1cffc95bc5c56aadbb9ab8c0cdc8bc680d6f4
Signed-off-by: Elena Sayapina <elena.v.sayapina@intel.com>
9 years agoMerge "Improve GVN performance when merging null-checked values."
Vladimir Marko [Wed, 20 Aug 2014 11:45:55 +0000 (11:45 +0000)]
Merge "Improve GVN performance when merging null-checked values."

9 years agoImprove GVN performance when merging null-checked values.
Vladimir Marko [Tue, 19 Aug 2014 17:08:39 +0000 (18:08 +0100)]
Improve GVN performance when merging null-checked values.

And ignore the limit on maximum number of processed basic
blocks once the GVN has actually converged and we're just
applying optimizations.

Bug: 16398693
Change-Id: Ie5aa0386ea4e0e9ae2bbf13963e2424e1713b22f

9 years agoMerge "Fix JDWP event races"
Sebastien Hertz [Tue, 19 Aug 2014 12:09:20 +0000 (12:09 +0000)]
Merge "Fix JDWP event races"

9 years agoFix JDWP event races
Sebastien Hertz [Mon, 18 Aug 2014 17:26:39 +0000 (19:26 +0200)]
Fix JDWP event races

Fix a race where the JDWP connection could be closed before the VM_DEATH event
is sent during runtime shutdown.

Fix potential race where we could wait forever for the JDWP thread to establish
connection.

Bug: 16720689

(cherry picked from commit d8b3537b89fa68599534a65afc3b272639cd4a75)

Change-Id: I4b8996ade6a38fa8f7f23c3000b7184b162907d7

9 years agoMerge "Fix heap corruption and verification."
Mathieu Chartier [Tue, 19 Aug 2014 00:44:50 +0000 (00:44 +0000)]
Merge "Fix heap corruption and verification."

9 years agoFix heap corruption and verification.
Mathieu Chartier [Mon, 18 Aug 2014 22:02:59 +0000 (15:02 -0700)]
Fix heap corruption and verification.

There was a faulty assumption that space End() was always aligned to
card boundaries. This was true for all spaces other than the image
and resulted in heap corruption when the last object of the image
space contained a reference to an object in another space.

Also fixed an error where we called the pre GC verification post GC.

Bug: 17080623

(cherry picked from commit 6724d8649ab73e4fb86c8014bda51b13bddf2f3f)

Change-Id: I931149421c738653863eb6105dfdf7ecd750601a

9 years agoMerge "AArch64: Add tbz/tbnz and tst."
Vladimir Marko [Tue, 19 Aug 2014 09:58:50 +0000 (09:58 +0000)]
Merge "AArch64: Add tbz/tbnz and tst."

9 years agoAArch64: Add tbz/tbnz and tst.
Zheng Xu [Mon, 18 Aug 2014 09:28:22 +0000 (17:28 +0800)]
AArch64: Add tbz/tbnz and tst.

Since the branch offset supported by tbz/tbnz is quite small(-32k ~ +32k),
it will be replaced by tst and beq/bneq in the fix-up stage if the branch
offset is too large.

Change-Id: I4cace06bec6425e0f2e1f5f7c471eec08d06bca6

9 years agoMerge "X86: Fix alias info in GenInlinedIndexOf()."
Vladimir Marko [Wed, 20 Aug 2014 10:43:39 +0000 (10:43 +0000)]
Merge "X86: Fix alias info in GenInlinedIndexOf()."

9 years agoX86: Fix alias info in GenInlinedIndexOf().
Vladimir Marko [Tue, 19 Aug 2014 14:00:34 +0000 (15:00 +0100)]
X86: Fix alias info in GenInlinedIndexOf().

For 32-bit X86, GenInlinedIndexOf() pushes and pops EDI. In
one branch it then calls Load32Disp() with adjusted stack
offset. That calculates wrong alias_info for the generated
insn. If left unfixed, this could confuse load hoisting.

Bug: 17128502
Change-Id: I0ea07b8f5e25410e290304f662d5fd5bf66c0933

9 years agoMerge "Fix bug introduced in https://android-review.googlesource.com/102610."
Nicolas Geoffray [Wed, 20 Aug 2014 10:22:35 +0000 (10:22 +0000)]
Merge "Fix bug introduced in https://android-review.googlesource.com/102610."

9 years agoFix bug introduced in https://android-review.googlesource.com/102610.
Nicolas Geoffray [Wed, 20 Aug 2014 03:59:12 +0000 (04:59 +0100)]
Fix bug introduced in https://android-review.googlesource.com/102610.

Also make oatdump work again.

Change-Id: Iab96971645f40585bc04769d410f2273d3977f51

9 years agoMerge "Add null check to CheckVirtualMethod"
Mathieu Chartier [Wed, 20 Aug 2014 20:56:42 +0000 (20:56 +0000)]
Merge "Add null check to CheckVirtualMethod"

9 years agoAdd null check to CheckVirtualMethod
Mathieu Chartier [Wed, 20 Aug 2014 19:09:38 +0000 (12:09 -0700)]
Add null check to CheckVirtualMethod

There was a runtime SIGSEGV that should have been a check jni
failure.

Also added regression test.

Bug: 16320699

(cherry picked from commit 167350d9c781c5e3893714bb26ab5cb1c4abf6b4)

Change-Id: I7edea6af6517f1e5628678e824b8307daf491418

9 years agoMerge "Workaround problem reading main stack on intel devices."
Dave Allison [Wed, 20 Aug 2014 19:49:40 +0000 (19:49 +0000)]
Merge "Workaround problem reading main stack on intel devices."

9 years agoWorkaround problem reading main stack on intel devices.
Dave Allison [Mon, 18 Aug 2014 22:49:51 +0000 (15:49 -0700)]
Workaround problem reading main stack on intel devices.

This works around a problem where ART can't read the lowest page
of the main stack.  The workaround is to add 4K to the stack
start address on the main stack on Intel.

Please see https://b2.corp.google.com/issues/17111575 for
underlying cause.

Cherry picked from d970bac690baa6f735b0cd187440546869088a0f

Bug: 17031544
Change-Id: Ifc3216e10160bb1eec9d989fd57b10345bc89537

9 years agoMerge "Optimized instrumentation listener handling"
Ian Rogers [Mon, 18 Aug 2014 18:22:03 +0000 (18:22 +0000)]
Merge "Optimized instrumentation listener handling"

9 years agoOptimized instrumentation listener handling
Daniel Mihalyi [Mon, 18 Aug 2014 16:45:31 +0000 (18:45 +0200)]
Optimized instrumentation listener handling

Some instrumentation listener lists may be modified while iterating
over the list to deliver an instrumentation event. Therefore the
previous implementation copied the list of listeners before starting
the iteration.

This new implementation only copies the list of instrumentation
listeners when the list is changed. Instances of the list are
reference counted using std::shared_ptr<>.

Change-Id: I1b84db1f2042836dc1110925243f49e5790156d6

9 years agoMerge "[MIPS] Fix the code generated by GenSelectConst32"
Andreas Gampe [Mon, 18 Aug 2014 20:00:14 +0000 (20:00 +0000)]
Merge "[MIPS] Fix the code generated by GenSelectConst32"

9 years agoMerge "ART: Do not recursively abort when visiting locks in a bad state"
Andreas Gampe [Mon, 18 Aug 2014 16:41:58 +0000 (16:41 +0000)]
Merge "ART: Do not recursively abort when visiting locks in a bad state"

9 years agoART: Do not recursively abort when visiting locks in a bad state
Andreas Gampe [Sat, 16 Aug 2014 20:41:10 +0000 (13:41 -0700)]
ART: Do not recursively abort when visiting locks in a bad state

This avoids a nested abort in VisitLocks.

Bug: 1708062116382675

(cherry picked from commit 760172c3ccd6e75f6f1a89d8006934e8ffb1303e)

Change-Id: Id604976ac9dcac0e319fb25cab4d2cbc98d7ee24

9 years agoMerge "ART: Avoid expensive class lookup in compiler driver"
Andreas Gampe [Mon, 18 Aug 2014 16:40:13 +0000 (16:40 +0000)]
Merge "ART: Avoid expensive class lookup in compiler driver"

9 years agoART: Avoid expensive class lookup in compiler driver
Andreas Gampe [Sat, 16 Aug 2014 05:35:46 +0000 (22:35 -0700)]
ART: Avoid expensive class lookup in compiler driver

When we are not compiling multidex, avoid an expensive by-descriptor
lookup for classes when deciding whether to skip compilation.

Bug: 17072698

(cherry picked from commit d84f916d35bb0dc74d7daa075b883e5ee1ce1109)

Change-Id: I19bcb2a2928207fcae0badd466cdc52945bd37c4

9 years agoMerge "Update ziparchive usage to the new API."
Piotr Jastrzebski [Mon, 18 Aug 2014 08:27:04 +0000 (08:27 +0000)]
Merge "Update ziparchive usage to the new API."