OSDN Git Service

android-x86/art.git
8 years agoMerge "Revert "Don't use floating point callee saves in debuggable.""
Nicolas Geoffray [Mon, 5 Oct 2015 07:41:02 +0000 (07:41 +0000)]
Merge "Revert "Don't use floating point callee saves in debuggable.""

8 years agoRevert "Don't use floating point callee saves in debuggable."
Nicolas Geoffray [Mon, 5 Oct 2015 07:40:35 +0000 (07:40 +0000)]
Revert "Don't use floating point callee saves in debuggable."

bug:24602865
bug:24605078

This reverts commit 88a95ba893fcda974d492917dd77a9b11693dbf2.

Change-Id: Iba97eeab5c2ba725f66cc138f740dac337344828

8 years agoMerge "Change IllegalAccess/IncompatibleClassChange order."
Nicolas Geoffray [Mon, 5 Oct 2015 07:38:17 +0000 (07:38 +0000)]
Merge "Change IllegalAccess/IncompatibleClassChange order."

8 years agoMerge "Add aarch64 and mips64 support for testing 64 bit field set."
Calin Juravle [Sat, 3 Oct 2015 02:45:06 +0000 (02:45 +0000)]
Merge "Add aarch64 and mips64 support for testing 64 bit field set."

8 years agoAdd aarch64 and mips64 support for testing 64 bit field set.
Calin Juravle [Fri, 2 Oct 2015 22:56:06 +0000 (23:56 +0100)]
Add aarch64 and mips64 support for testing 64 bit field set.

Change-Id: Ibc4a9aecca19a7c8bee5404730d64fbeda9bb2e2

8 years agoMerge "Move getPublicFieldRecursive to native JNI"
Alex Light [Fri, 2 Oct 2015 21:40:34 +0000 (21:40 +0000)]
Merge "Move getPublicFieldRecursive to native JNI"

8 years agoMerge "Perform write barrier on declaring class when adding instrumentation"
Mathieu Chartier [Fri, 2 Oct 2015 20:53:48 +0000 (20:53 +0000)]
Merge "Perform write barrier on declaring class when adding instrumentation"

8 years agoPerform write barrier on declaring class when adding instrumentation
Mathieu Chartier [Fri, 2 Oct 2015 20:08:39 +0000 (13:08 -0700)]
Perform write barrier on declaring class when adding instrumentation

Since the instrumentation is marked from the declaring class we need
to mark the card so that mod-union tables and card rescanning know
about the update.

This fixes some moving GC crashes on eng builds.

Bug: 24133607

(cherry picked from commit b5bba5966045258fd8b755fb65e381cd7fb9c311)

Change-Id: Ibe8430e32e161d33ce0a6782e8dc252e5c86c8da

8 years agoMerge "Generate an hprof file to test ahat."
Richard Uhler [Fri, 2 Oct 2015 19:52:39 +0000 (19:52 +0000)]
Merge "Generate an hprof file to test ahat."

8 years agoMerge "Change DecodeWeakGlobal to DecodeJObject for class unloading"
Mathieu Chartier [Fri, 2 Oct 2015 16:40:06 +0000 (16:40 +0000)]
Merge "Change DecodeWeakGlobal to DecodeJObject for class unloading"

8 years agoChange IllegalAccess/IncompatibleClassChange order.
Nicolas Geoffray [Fri, 2 Oct 2015 16:14:53 +0000 (17:14 +0100)]
Change IllegalAccess/IncompatibleClassChange order.

This is to have the same order as ClassLinker::ResolveMethod. In
a JIT environment, hitting the dex cache would not make it to the
expected IllegalAccessError and we would throw the wrong exception.

Change-Id: Ifc70f1a93260a24e952fa7a659be1be5bdc666de

8 years agoMerge "ART: Use an iterative way in DoDFSPreOrderSSARename()"
Vladimir Marko [Fri, 2 Oct 2015 16:03:24 +0000 (16:03 +0000)]
Merge "ART: Use an iterative way in DoDFSPreOrderSSARename()"

8 years agoMerge "KNOWN_BROKEN/FAILING does not work for gtests."
Nicolas Geoffray [Fri, 2 Oct 2015 15:15:47 +0000 (15:15 +0000)]
Merge "KNOWN_BROKEN/FAILING does not work for gtests."

8 years agoKNOWN_BROKEN/FAILING does not work for gtests.
Nicolas Geoffray [Fri, 2 Oct 2015 13:41:18 +0000 (14:41 +0100)]
KNOWN_BROKEN/FAILING does not work for gtests.

Instead disable the test in the gtest file.

Change-Id: Iede5de7ca572c9454437981a5fa63cda444d0497

8 years agoMerge "Fix lint error."
Nicolas Geoffray [Fri, 2 Oct 2015 11:39:37 +0000 (11:39 +0000)]
Merge "Fix lint error."

8 years agoFix lint error.
Nicolas Geoffray [Fri, 2 Oct 2015 11:38:40 +0000 (12:38 +0100)]
Fix lint error.

Change-Id: Icb10d23bdac6881b48d2025cac76dc130aefbf73

8 years agoMerge "Test fails on mips."
Nicolas Geoffray [Fri, 2 Oct 2015 10:36:22 +0000 (10:36 +0000)]
Merge "Test fails on mips."

8 years agoMerge "Do more inlining when JITting."
Nicolas Geoffray [Fri, 2 Oct 2015 10:34:17 +0000 (10:34 +0000)]
Merge "Do more inlining when JITting."

8 years agoTest fails on mips.
Nicolas Geoffray [Fri, 2 Oct 2015 09:39:55 +0000 (10:39 +0100)]
Test fails on mips.

bug:24596015
Change-Id: Iad6ab18b287b398af82b6a0574cb74204619755d

8 years agoDo more inlining when JITting.
Nicolas Geoffray [Thu, 1 Oct 2015 13:34:20 +0000 (14:34 +0100)]
Do more inlining when JITting.

We now check the verification status of the class.

This triggered a bug when an inlined method was not compiled
(typically in a JIT configuration), and the path for deopting in
StackVisitor was using the wrong ArtMethod in order to know the
compiler that compiled the current frame.

Change-Id: I81d3ca0cf5cd3864b83b63dd954c58e1f2adaad4

8 years agoMerge "Don't force the boot image to using quick."
Nicolas Geoffray [Fri, 2 Oct 2015 08:01:09 +0000 (08:01 +0000)]
Merge "Don't force the boot image to using quick."

8 years agoMerge "Fix x86_64 gtest."
Calin Juravle [Fri, 2 Oct 2015 06:40:57 +0000 (06:40 +0000)]
Merge "Fix x86_64 gtest."

8 years agoFix x86_64 gtest.
Calin Juravle [Fri, 2 Oct 2015 06:27:51 +0000 (07:27 +0100)]
Fix x86_64 gtest.

Calling convention for setting a 64bit field changed.
The CL fixes the test for x86_64 and disable it for other arches.

Change-Id: Iea3df0965f65b10c59ed975f91ca8069fde6e13c

8 years agoMerge "Enable compilation of members with access check failures."
Calin Juravle [Fri, 2 Oct 2015 01:53:08 +0000 (01:53 +0000)]
Merge "Enable compilation of members with access check failures."

8 years agoMerge "Revert "Revert "Support unresolved fields in optimizing""
Calin Juravle [Fri, 2 Oct 2015 01:52:46 +0000 (01:52 +0000)]
Merge "Revert "Revert "Support unresolved fields in optimizing""

8 years agoEnable compilation of members with access check failures.
Calin Juravle [Thu, 17 Sep 2015 13:15:12 +0000 (14:15 +0100)]
Enable compilation of members with access check failures.

Change-Id: I0de73099b53612072c3e6f1235c22f96339fe440

8 years agoRevert "Revert "Support unresolved fields in optimizing"
Calin Juravle [Tue, 29 Sep 2015 03:52:17 +0000 (04:52 +0100)]
Revert "Revert "Support unresolved fields in optimizing"

The CL also changes the calling convetion for 64bit static field set
to use kArg2 instead of kArg1. This allows optimizing to keep
the asumptions:
- arm pairs are always of form (even_reg, odd_reg)
- ecx_edx is not used as a register on x86.

This reverts commit e6f49b47b6a4dc9c7684e4483757872cfc7ff1a1.

Change-Id: I93159917565824084abc96775f31be1a4249f2f3

8 years agoMerge "Make SetStateUnsafe run checkpoints before going to suspended"
Mathieu Chartier [Fri, 2 Oct 2015 01:23:04 +0000 (01:23 +0000)]
Merge "Make SetStateUnsafe run checkpoints before going to suspended"

8 years agoMake SetStateUnsafe run checkpoints before going to suspended
Mathieu Chartier [Thu, 1 Oct 2015 22:58:41 +0000 (15:58 -0700)]
Make SetStateUnsafe run checkpoints before going to suspended

This prevents cases where we can get a checkpoint request in runnable
and then unsafe set to suspended. This was bad behavior since the
checkpoint may not be run in a timely manner.

Bug: 24191051
Change-Id: I73605c1a1154f67699f3902141f3232ab064793f

8 years agoMerge "Improvements for table lookup read barriers."
Hiroshi Yamauchi [Fri, 2 Oct 2015 01:01:25 +0000 (01:01 +0000)]
Merge "Improvements for table lookup read barriers."

8 years agoImprovements for table lookup read barriers.
Hiroshi Yamauchi [Thu, 1 Oct 2015 03:12:11 +0000 (20:12 -0700)]
Improvements for table lookup read barriers.

- Implement fast paths for the GC root read barrier routines.
- Avoid unnecessary CAS operations.

Bug: 12687968
Change-Id: Iceef44e253062af5bf2295a521a9c64403deafe1

8 years agoChange DecodeWeakGlobal to DecodeJObject for class unloading
Mathieu Chartier [Fri, 2 Oct 2015 00:08:44 +0000 (17:08 -0700)]
Change DecodeWeakGlobal to DecodeJObject for class unloading

DecodeWeakGlobal returns the sentinel object for cleared JNI weak
globals. This was causing a memory leak since it wouldn't delete
class tables and linear allocs due to never returning null. The bug
was found by yamauchi.

Bug: 22720414

Change-Id: Iff4681495232b9a9756dbdb51d10ea72691a85dd

8 years agoMove getPublicFieldRecursive to native JNI
Alex Light [Thu, 1 Oct 2015 20:35:09 +0000 (13:35 -0700)]
Move getPublicFieldRecursive to native JNI

Benchmark: libcore/benchmarks/src/benchmarks/regression/ReflectionBenchmark.java

Previous benchmarks:
    Class_getField           814.26 ns; σ=6.44 ns @ 3 trials
    GetInterfaceStaticField 1552.28 ns; σ=38.22 ns @ 10 trials
    GetSuperClassField       939.85 ns; σ=2.94 ns @ 3 trials

New benchmarks:
    Class_getField           735.97 ns; σ=0.98 ns @ 3 trials
    GetInterfaceStaticField 1178.98 ns; σ=6.14 ns @ 3 trials
    GetSuperClassField       853.76 ns; σ=16.86 ns @ 10 trials

Bug: 24209213

Change-Id: I08073cb36b007ac33af010dab917a6f1e51107c0

8 years agoMerge "Add more error printing to TransitionFromSuspendedToRunnable"
Mathieu Chartier [Thu, 1 Oct 2015 22:08:56 +0000 (22:08 +0000)]
Merge "Add more error printing to TransitionFromSuspendedToRunnable"

8 years agoMerge "Revert "Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"""
Andreas Gampe [Thu, 1 Oct 2015 22:05:49 +0000 (22:05 +0000)]
Merge "Revert "Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"""

8 years agoAdd more error printing to TransitionFromSuspendedToRunnable
Mathieu Chartier [Thu, 1 Oct 2015 21:46:29 +0000 (14:46 -0700)]
Add more error printing to TransitionFromSuspendedToRunnable

Bug: 24191051
Change-Id: I5c66ba5c76bf86e8d603110989b9da883ca4ca65

8 years agoMerge "MIPS64: Implement intrinsic java.lang.Thread.currentThread()"
Andreas Gampe [Thu, 1 Oct 2015 20:29:43 +0000 (20:29 +0000)]
Merge "MIPS64: Implement intrinsic java.lang.Thread.currentThread()"

8 years agoMerge "Fix another poisoning problem."
Nicolas Geoffray [Thu, 1 Oct 2015 17:41:27 +0000 (17:41 +0000)]
Merge "Fix another poisoning problem."

8 years agoFix another poisoning problem.
Nicolas Geoffray [Thu, 1 Oct 2015 14:50:27 +0000 (15:50 +0100)]
Fix another poisoning problem.

We were using the wrong temp.

Change-Id: Id79d5079cc85f61eb1a45d741a67f24d33e8fa03

8 years agoGenerate an hprof file to test ahat.
Richard Uhler [Thu, 10 Sep 2015 23:45:54 +0000 (16:45 -0700)]
Generate an hprof file to test ahat.

This change sets up the infrastructure to write test cases for ahat
that make use of an hprof file automatically generated from a sample
program.

Change-Id: Id11f656afb69c96a26655cc4caeb745ad844f431

8 years agoMerge "ART: Fix a static_cast int32_t -> uint64_t bug."
David Brazdil [Thu, 1 Oct 2015 14:16:40 +0000 (14:16 +0000)]
Merge "ART: Fix a static_cast int32_t -> uint64_t bug."

8 years agoART: Fix a static_cast int32_t -> uint64_t bug.
David Brazdil [Thu, 1 Oct 2015 13:32:56 +0000 (14:32 +0100)]
ART: Fix a static_cast int32_t -> uint64_t bug.

HConstant::GetValueAsUint64 is used by SsaChecker to verify that
equivalent phis are created only for untyped constants. The test
would fail because a static_cast would sign extend the value of the
IntConstant.

Bug: 24561315
Change-Id: I818ce6a2080994a7c4395d084c1df7fd615a246d

8 years agoMerge "CUSTOM_TARGET_LINKER is set by the buildbot already."
Nicolas Geoffray [Thu, 1 Oct 2015 10:47:57 +0000 (10:47 +0000)]
Merge "CUSTOM_TARGET_LINKER is set by the buildbot already."

8 years agoMerge "Fix poisoining bug in arm64."
Nicolas Geoffray [Thu, 1 Oct 2015 10:41:17 +0000 (10:41 +0000)]
Merge "Fix poisoining bug in arm64."

8 years agoDon't force the boot image to using quick.
Nicolas Geoffray [Thu, 1 Oct 2015 09:32:19 +0000 (10:32 +0100)]
Don't force the boot image to using quick.

Instead, put the debuggable flag.

Also, remove obsolete ART_USE_OPTIMIZING_COMPILER environment
variable.

Change-Id: Idde00da0d063aa461faa0308134f3b420de9fe0a

8 years agoFix poisoining bug in arm64.
Nicolas Geoffray [Thu, 1 Oct 2015 09:27:52 +0000 (10:27 +0100)]
Fix poisoining bug in arm64.

Change-Id: I30ca7f237009d81c9d83fabb6a4c76bf4c74d451

8 years agoMerge "Mark one more Checker test broken for mips32"
David Brazdil [Thu, 1 Oct 2015 08:57:17 +0000 (08:57 +0000)]
Merge "Mark one more Checker test broken for mips32"

8 years agoMark one more Checker test broken for mips32
David Brazdil [Thu, 1 Oct 2015 08:55:45 +0000 (09:55 +0100)]
Mark one more Checker test broken for mips32

Change-Id: I5289e91ff4b8bc530530eef000091c52f96fcc45

8 years agoMerge "Optimize ArraySet for x86/x64/arm/arm64."
Nicolas Geoffray [Thu, 1 Oct 2015 07:34:40 +0000 (07:34 +0000)]
Merge "Optimize ArraySet for x86/x64/arm/arm64."

8 years agoRevert "Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod""
Andreas Gampe [Wed, 30 Sep 2015 20:05:24 +0000 (20:05 +0000)]
Revert "Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod""

This reverts commit 38b8287004770e4d20dcc0e0fe4697060917ec72.

Do not always use ScopedObjectAccess. The GC might call this during
sanity checking, at which point the state is not runnable, but the
mutator lock is still held.

Currently needs an ugly NO_THREAD_SAFETY_ANALYSIS helper, as the
assert isn't correctly handled (establishing the held mutator lock).

Change-Id: Ie79e85e2afedc9b989382d88155b09e426fe7f75

8 years agoMerge "ART: Fix test"
Andreas Gampe [Thu, 1 Oct 2015 00:30:40 +0000 (00:30 +0000)]
Merge "ART: Fix test"

8 years agoART: Fix test
Andreas Gampe [Thu, 1 Oct 2015 00:25:15 +0000 (17:25 -0700)]
ART: Fix test

Fix a missing rename after 89df7bfc41a4de9685f84e7db07f77db3fd485fc.

Change-Id: I67c8dfd45ff9d4d6b6b005df20c17ba4e453c378

8 years agoMerge "ART: Refactor libarttest C++ code"
Andreas Gampe [Wed, 30 Sep 2015 22:09:41 +0000 (22:09 +0000)]
Merge "ART: Refactor libarttest C++ code"

8 years agoMerge "Tidy up spelling"
Kenny Root [Wed, 30 Sep 2015 21:42:02 +0000 (21:42 +0000)]
Merge "Tidy up spelling"

8 years agoMerge "Use free lists instead of bitmaps within rosalloc runs."
Hiroshi Yamauchi [Wed, 30 Sep 2015 21:33:53 +0000 (21:33 +0000)]
Merge "Use free lists instead of bitmaps within rosalloc runs."

8 years agoUse free lists instead of bitmaps within rosalloc runs.
Hiroshi Yamauchi [Thu, 24 Sep 2015 18:20:29 +0000 (11:20 -0700)]
Use free lists instead of bitmaps within rosalloc runs.

Speedups (CMS GC/N5)
BinaryTrees:  2008 -> 1694 ms (-16%)
MemAllocTest: 2303 -> 2076 ms (-10%)

TODO: Add assembly fast path code.

Bug: 9986565

Change-Id: I9dd7cbfd8e1ae083a399e70abaf2064a959f24fa

8 years agoART: Refactor libarttest C++ code
Andreas Gampe [Wed, 30 Sep 2015 20:13:21 +0000 (13:13 -0700)]
ART: Refactor libarttest C++ code

Refactor some libarttest JNI functions into a common directory, so
they can be easily used by multiple tests without code duplication.
This is preparation for better deoptimization state testing.

Change-Id: I43f7340b699b26930aabfd665c707e0485b17fc8

8 years agoTidy up spelling
Kenny Root [Wed, 30 Sep 2015 20:09:51 +0000 (13:09 -0700)]
Tidy up spelling

To match the directory "compiler/optimizing" change the spelling of
comments.

Change-Id: I816da4836ce86f4a44ddd2754d8e788d77a27de3

8 years agoMerge "Revert "Revert "Keep internal stack trace methods declaring classes live"""
Mathieu Chartier [Wed, 30 Sep 2015 18:34:18 +0000 (18:34 +0000)]
Merge "Revert "Revert "Keep internal stack trace methods declaring classes live"""

8 years agoMerge "Don't use floating point callee saves in debuggable."
Nicolas Geoffray [Wed, 30 Sep 2015 17:48:51 +0000 (17:48 +0000)]
Merge "Don't use floating point callee saves in debuggable."

8 years agoMerge "Optimizing: Tag even more arena allocations."
Vladimir Marko [Wed, 30 Sep 2015 17:46:01 +0000 (17:46 +0000)]
Merge "Optimizing: Tag even more arena allocations."

8 years agoDon't use floating point callee saves in debuggable.
Nicolas Geoffray [Wed, 30 Sep 2015 16:18:14 +0000 (17:18 +0100)]
Don't use floating point callee saves in debuggable.

The runtime stubs don't save them, so GetVReg and SetVReg
won't work on them.

Not having callee saves will increase code size and reduce
performance of fp-heavy methods. But we need to do it for
propper debugging.

Change-Id: I40354c29718af49b6b3adf61d724d3bb93680107

8 years agoOptimize ArraySet for x86/x64/arm/arm64.
Nicolas Geoffray [Fri, 25 Sep 2015 10:04:45 +0000 (11:04 +0100)]
Optimize ArraySet for x86/x64/arm/arm64.

Change-Id: I5bc8c6adf7f82f3b211f0c21067f5bb54dd0c040

8 years agoMerge "Implemented trip-count safety information."
Aart Bik [Wed, 30 Sep 2015 17:23:55 +0000 (17:23 +0000)]
Merge "Implemented trip-count safety information."

8 years agoRevert "Revert "Keep internal stack trace methods declaring classes live""
Mathieu Chartier [Wed, 30 Sep 2015 16:24:22 +0000 (09:24 -0700)]
Revert "Revert "Keep internal stack trace methods declaring classes live""

Fixed some code which used old stack trace representation in throwable.cc.

Bug: 22720414

This reverts commit 45a8522898702f6a725ae19d97bceedc8fc609a6.

Change-Id: I7385075caf649ce76da5d8866fd0031b9e8e5ef4

8 years agoImplemented trip-count safety information.
Aart Bik [Mon, 28 Sep 2015 23:25:56 +0000 (16:25 -0700)]
Implemented trip-count safety information.

As shown in the induction analysis presentation, trip-counts need to
deal with potential taken/not-taken situations (so that trip-count
is either valid in the full loop or just in the loop-body proper)
and potential finite/infinite situations (the latter can still be
analyzed but may need to run-time test later to guard against the
infinite conditions). This CL provides that information.

Change-Id: I0445d8e836b80a3614af217ce3e39d766e77b986

8 years agoMerge "Make libcore timeout the same for all runs."
Nicolas Geoffray [Wed, 30 Sep 2015 12:41:47 +0000 (12:41 +0000)]
Merge "Make libcore timeout the same for all runs."

8 years agoMake libcore timeout the same for all runs.
Nicolas Geoffray [Wed, 30 Sep 2015 11:02:21 +0000 (12:02 +0100)]
Make libcore timeout the same for all runs.

Looks like our mips32 devices need it too. Simply make
the timeout big enough for all run kinds.

Change-Id: I48a87eaef36c05e09c7ad82aaa003c7eb0d1ad6d

8 years agoMerge "ART: Mark Checker tests broken for mips32"
David Brazdil [Wed, 30 Sep 2015 10:59:28 +0000 (10:59 +0000)]
Merge "ART: Mark Checker tests broken for mips32"

8 years agoART: Mark Checker tests broken for mips32
David Brazdil [Wed, 30 Sep 2015 10:47:35 +0000 (11:47 +0100)]
ART: Mark Checker tests broken for mips32

We don't have a mips32 backend at the moment, so there is no graph
dump to run Checker on.

Change-Id: I9c90b93811aa7bbc849575ac1836c2d85da7e9ac

8 years agoMerge "Revert "Revert "Enable optimizations with --debuggable."""
Nicolas Geoffray [Wed, 30 Sep 2015 09:20:32 +0000 (09:20 +0000)]
Merge "Revert "Revert "Enable optimizations with --debuggable."""

8 years agoMerge "Add deoptimization test."
Nicolas Geoffray [Wed, 30 Sep 2015 08:15:15 +0000 (08:15 +0000)]
Merge "Add deoptimization test."

8 years agoRevert "Revert "Enable optimizations with --debuggable.""
Nicolas Geoffray [Tue, 29 Sep 2015 18:00:03 +0000 (18:00 +0000)]
Revert "Revert "Enable optimizations with --debuggable.""

This reverts commit b7d27a53cb280a943c0a63a9e0806cf8e3ae4cde.

Change-Id: I398c23863e4fd86a3112076417378d22efd08306

8 years agoMerge "Revert "Keep internal stack trace methods declaring classes live""
Nicolas Geoffray [Wed, 30 Sep 2015 07:20:50 +0000 (07:20 +0000)]
Merge "Revert "Keep internal stack trace methods declaring classes live""

8 years agoRevert "Keep internal stack trace methods declaring classes live"
Nicolas Geoffray [Wed, 30 Sep 2015 07:20:13 +0000 (07:20 +0000)]
Revert "Keep internal stack trace methods declaring classes live"

Breaks jdwp tests.

Bug: 22720414

This reverts commit 566fc926942ed57925627d1bd43e099938084f1e.

Change-Id: Ic3544e86af35bf748f9d47e0a4077dcdc206a821

8 years agoMerge "Keep internal stack trace methods declaring classes live"
Mathieu Chartier [Wed, 30 Sep 2015 01:17:00 +0000 (01:17 +0000)]
Merge "Keep internal stack trace methods declaring classes live"

8 years agoKeep internal stack trace methods declaring classes live
Mathieu Chartier [Tue, 29 Sep 2015 17:21:55 +0000 (10:21 -0700)]
Keep internal stack trace methods declaring classes live

We now store the declaring classes in the internal stack trace to
make sure class unloading doesn't unload any classes owning methods
in the stack trace.

This fixes DexClassLoaderTest in libcore. Added regression test.

Bug: 22720414

Change-Id: I185f87c8ec0807e83f4661bd5bb5652dba6fc281

8 years agoMerge "Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod""
Andreas Gampe [Tue, 29 Sep 2015 22:22:40 +0000 (22:22 +0000)]
Merge "Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod""

8 years agoRevert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"
Andreas Gampe [Tue, 29 Sep 2015 22:22:28 +0000 (22:22 +0000)]
Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"

This reverts commit 6dd332933a570f5e413dd0d784481607798fbcf5.

Interestingly fails for sdk build.

Change-Id: I28d8fc05575ff1d744b4a831c32ef4414775561a

8 years agoMerge "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"
Andreas Gampe [Tue, 29 Sep 2015 21:18:07 +0000 (21:18 +0000)]
Merge "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"

8 years agoMerge "Fix a mutator lock violation in the generic JNI end sequence."
Hiroshi Yamauchi [Tue, 29 Sep 2015 19:07:50 +0000 (19:07 +0000)]
Merge "Fix a mutator lock violation in the generic JNI end sequence."

8 years agoOptimizing: Tag even more arena allocations.
Vladimir Marko [Tue, 29 Sep 2015 18:01:15 +0000 (19:01 +0100)]
Optimizing: Tag even more arena allocations.

Tag previously "Misc" arena allocations with more specific
allocation types. Move some native heap allocations to the
arena in BCE.

Bug: 23736311
Change-Id: If8ef15a8b614dc3314bdfb35caa23862c9d4d25c

8 years agoFix a mutator lock violation in the generic JNI end sequence.
Hiroshi Yamauchi [Tue, 29 Sep 2015 00:47:32 +0000 (17:47 -0700)]
Fix a mutator lock violation in the generic JNI end sequence.

artQuickGenericJniEndTrampoline() was accessing objects without a shared
mutator lock right after returning from a JNI call but before switching
to the runnable state.

This fixes crashes with table lookup read barriers enabled.

Bug: 12687968
Change-Id: I94ad9ca276750f58cb68b2fa9eb8cdeb371f021b

8 years agoART: Remove unnecessary SHARED_REQUIRES in ArtMethod
Andreas Gampe [Tue, 29 Sep 2015 18:21:43 +0000 (11:21 -0700)]
ART: Remove unnecessary SHARED_REQUIRES in ArtMethod

Move DCHECKs in GetAccessFlags into their own block and let them
acquire the mutator lock, if necessary. Then remove the old
annotations.

Change-Id: I29e24f17b001d0e16dc66c01a0f6450efb64ebc6

8 years agoMerge "Revert "Enable optimizations with --debuggable.""
Nicolas Geoffray [Tue, 29 Sep 2015 17:30:24 +0000 (17:30 +0000)]
Merge "Revert "Enable optimizations with --debuggable.""

8 years agoRevert "Enable optimizations with --debuggable."
Nicolas Geoffray [Tue, 29 Sep 2015 17:30:10 +0000 (17:30 +0000)]
Revert "Enable optimizations with --debuggable."

Build error with gcc.

This reverts commit 43855ccb01703b188777fe59e1110e6a23803171.

Change-Id: I45abc7ee0943b2ad7bd644c88858891fc7a38ead

8 years agoMerge "Enable optimizations with --debuggable."
Nicolas Geoffray [Tue, 29 Sep 2015 17:05:26 +0000 (17:05 +0000)]
Merge "Enable optimizations with --debuggable."

8 years agoART: Use an iterative way in DoDFSPreOrderSSARename()
Chao-ying Fu [Thu, 13 Aug 2015 00:52:35 +0000 (17:52 -0700)]
ART: Use an iterative way in DoDFSPreOrderSSARename()

This patch changes the recursion to an iterative implementation.
It tries to solve a stack overflow issue when installing
Facebook on some devices.  The recursion reaches more than 2600
levels when compiling
"java.util.Map com.facebook.graphql.model.GraphQLNodeDeserializer.a()".

Change-Id: Ibe74359526e10fe6afa833e3bb46b6138aaf5435
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
8 years agoMerge "Address some code comments"
Mathieu Chartier [Tue, 29 Sep 2015 17:04:17 +0000 (17:04 +0000)]
Merge "Address some code comments"

8 years agoMerge "Optimizing: Simplify UShr+And, Shr+And."
Vladimir Marko [Tue, 29 Sep 2015 16:33:44 +0000 (16:33 +0000)]
Merge "Optimizing: Simplify UShr+And, Shr+And."

8 years agoAdd deoptimization test.
Jongwon Lee [Thu, 3 Sep 2015 17:33:07 +0000 (02:33 +0900)]
Add deoptimization test.

Test passes with single frame deopt. If we were to deopt the whole
stack, we would need to record (interpreter-)live dex registers at
call sites.

Change-Id: Iebdce60be3fa1b0255fe2fa5ef0cf0b442e061f9
Signed-off-by: Jongwon Lee <jong.won.lee@samsung.com>
8 years agoEnable optimizations with --debuggable.
Nicolas Geoffray [Tue, 29 Sep 2015 14:43:06 +0000 (15:43 +0100)]
Enable optimizations with --debuggable.

Change-Id: I8979e59ee081222687fda1c93ac0bf3acbbad936

8 years agoMerge "Fix a bug in DeadPhiHandling around conflicting phis."
Nicolas Geoffray [Tue, 29 Sep 2015 15:18:29 +0000 (15:18 +0000)]
Merge "Fix a bug in DeadPhiHandling around conflicting phis."

8 years agoFix a bug in DeadPhiHandling around conflicting phis.
Nicolas Geoffray [Tue, 29 Sep 2015 12:42:22 +0000 (13:42 +0100)]
Fix a bug in DeadPhiHandling around conflicting phis.

Change-Id: I44ec40f71a7e05eb4295bea55f6045cb86017329

8 years agoCUSTOM_TARGET_LINKER is set by the buildbot already.
Nicolas Geoffray [Tue, 29 Sep 2015 13:56:31 +0000 (14:56 +0100)]
CUSTOM_TARGET_LINKER is set by the buildbot already.

Change-Id: I5adac0256c6b9e24e832d3bdbbed6a2917389c08

8 years agoMerge "Optimizing: Tag arena allocations in code generators."
Vladimir Marko [Tue, 29 Sep 2015 14:56:04 +0000 (14:56 +0000)]
Merge "Optimizing: Tag arena allocations in code generators."

8 years agoOptimizing: Simplify UShr+And, Shr+And.
Vladimir Marko [Fri, 25 Sep 2015 13:44:17 +0000 (14:44 +0100)]
Optimizing: Simplify UShr+And, Shr+And.

Eliminate And from UShr+And if the And-mask contains all the
bits that can be non-zero after UShr. Transform Shr+And to
UShr if the And-mask precisely clears the shifted-in sign
bits.

This prepares for detecting the Rotate pattern, i.e.
  (x << N) | (x >>> (SIZE - N))
in code that unnecessarily masks the UShr, for example
  (x << 1) | ((x >>> 31) & 1) ,
or uses Shr, for example
  (x << 8) | ((x >> 24) & 0xff) .

Change-Id: I684c4b752547d9b1057d0d4c4d44550bb1a3ffb4

8 years agoMerge "Quick: Avoid shifting -1 left (undefined behavior)."
Vladimir Marko [Tue, 29 Sep 2015 10:37:49 +0000 (10:37 +0000)]
Merge "Quick: Avoid shifting -1 left (undefined behavior)."

8 years agoQuick: Avoid shifting -1 left (undefined behavior).
Vladimir Marko [Tue, 29 Sep 2015 10:25:48 +0000 (11:25 +0100)]
Quick: Avoid shifting -1 left (undefined behavior).

C++11 clarifies that shifting left a negative value is
undefined behavior. Fix legacy code that shifted -1 left.

Bug: 24489455
Change-Id: Iaf4f26c7cde175f039b6a2cad12af6f0b1624fba

8 years agoOptimizing: Tag arena allocations in code generators.
Vladimir Marko [Mon, 28 Sep 2015 11:17:40 +0000 (12:17 +0100)]
Optimizing: Tag arena allocations in code generators.

And completely remove the deprecated GrowableArray.

Replace GrowableArray with ArenaVector in code generators
and related classes and tag arena allocations.

Label arrays use direct allocations from ArenaAllocator
because Label is non-copyable and non-movable and as such
cannot be really held in a container. The GrowableArray
never actually constructed them, instead relying on the
zero-initialized storage from the arena allocator to be
correct. We now actually construct the labels.

Also avoid StackMapStream::ComputeDexRegisterMapSize() being
passed null references, even though unused.

Change-Id: I26a46fdd406b23a3969300a67739d55528df8bf4