OSDN Git Service

android-x86/art.git
10 years agoAlways log explicit GC.
Mathieu Chartier [Mon, 28 Apr 2014 19:22:07 +0000 (12:22 -0700)]
Always log explicit GC.

People who use DDMS want to see that a GC actually occurs when they
press GC button.

Bug: 14325353
Change-Id: I44e0450c92abf7223d33552ed37f626fe63e1c28

10 years agoMerge "Fix racy DCHECKS."
Mathieu Chartier [Mon, 28 Apr 2014 17:30:04 +0000 (17:30 +0000)]
Merge "Fix racy DCHECKS."

10 years agoFix racy DCHECKS.
Mathieu Chartier [Mon, 28 Apr 2014 16:35:55 +0000 (09:35 -0700)]
Fix racy DCHECKS.

Added a size bracket lock to fix a race condition where we were
inserting into full_runs_ and non_full_runs_ holding a lock but
reading without holding a lock from a different thread.

Bug: 14326370
Change-Id: I5c492bddc4b9927e4a36603f3d787b046961675d

10 years agoMerge "Avoid volatile 64-bit tearing on 32-bit architectures."
Ian Rogers [Mon, 28 Apr 2014 16:02:49 +0000 (16:02 +0000)]
Merge "Avoid volatile 64-bit tearing on 32-bit architectures."

10 years agoAvoid volatile 64-bit tearing on 32-bit architectures.
Ian Rogers [Tue, 22 Apr 2014 00:01:02 +0000 (17:01 -0700)]
Avoid volatile 64-bit tearing on 32-bit architectures.

Change b122a4bbed34ab22b4c1541ee25e5cf22f12a926 removed inline assembly for
volatile 64bit read/writes. This isn't sound in the general case, reinstate.
Motivating change: https://android-review.googlesource.com/91250
Add optimizations for ARM in the case of LPAE support.

Change-Id: Ie86d8885d27c8f0da75f0c3bd50d4553a331282f

10 years agoMerge "Add a Transform to SSA phase to the optimizing compiler."
Nicolas Geoffray [Mon, 28 Apr 2014 15:22:52 +0000 (15:22 +0000)]
Merge "Add a Transform to SSA phase to the optimizing compiler."

10 years agoAdd a Transform to SSA phase to the optimizing compiler.
Nicolas Geoffray [Thu, 24 Apr 2014 11:43:16 +0000 (12:43 +0100)]
Add a Transform to SSA phase to the optimizing compiler.

Change-Id: Ia9700756a0396d797a00b529896487d52c989329

10 years agoMerge "Quick compiler: fix DCHECKS"
buzbee [Mon, 28 Apr 2014 12:33:58 +0000 (12:33 +0000)]
Merge "Quick compiler: fix DCHECKS"

10 years agoMerge "ART: Bitvector extensions for dumping and size handling"
Vladimir Marko [Mon, 28 Apr 2014 10:18:30 +0000 (10:18 +0000)]
Merge "ART: Bitvector extensions for dumping and size handling"

10 years agoMerge "Move mapping table and vmap table offsets to OatMethodHeader."
Vladimir Marko [Mon, 28 Apr 2014 09:09:06 +0000 (09:09 +0000)]
Merge "Move mapping table and vmap table offsets to OatMethodHeader."

10 years agoMerge "Fix typo of --oat-fd description in help"
Brian Carlstrom [Mon, 28 Apr 2014 04:23:00 +0000 (04:23 +0000)]
Merge "Fix typo of --oat-fd description in help"

10 years agoQuick compiler: fix DCHECKS
buzbee [Mon, 28 Apr 2014 02:33:22 +0000 (19:33 -0700)]
Quick compiler: fix DCHECKS

The recent change to introduce k32, k64 and kReference operand
sizes missed updating a few DCHECKS.

Change-Id: I66eb617b07766e781b38962dc862fc5b023c2fbd

10 years agoFix typo of --oat-fd description in help
Wonil Kim [Mon, 28 Apr 2014 02:26:55 +0000 (11:26 +0900)]
Fix typo of --oat-fd description in help

--oat-fd description in help was copied from --oat-file description.

Change-Id: Idbf36018af58db169f6d65382a7602ec950cce99
Signed-off-by: Wonil Kim <wonil.kim@gmail.com>
10 years agoMerge "Rosalloc: fix signature for 64b"
Andreas Gampe [Sat, 26 Apr 2014 00:18:56 +0000 (00:18 +0000)]
Merge "Rosalloc: fix signature for 64b"

10 years agoRosalloc: fix signature for 64b
Andreas Gampe [Sat, 26 Apr 2014 00:15:12 +0000 (17:15 -0700)]
Rosalloc: fix signature for 64b

Change-Id: I56df1df0118a0aa1584e51fb574902f7eb88cd80

10 years agoMerge "Add "arch_test" gtest for assembly stub constants, add some ARM64 assembly...
Andreas Gampe [Fri, 25 Apr 2014 23:14:58 +0000 (23:14 +0000)]
Merge "Add "arch_test" gtest for assembly stub constants, add some ARM64 assembly code"

10 years agoAdd "arch_test" gtest for assembly stub constants, add some ARM64 assembly code
Andreas Gampe [Tue, 22 Apr 2014 02:28:24 +0000 (19:28 -0700)]
Add "arch_test" gtest for assembly stub constants, add some ARM64 assembly code

Add a test that (1) checks all callee-save method frame sizes for
all architectures, (2) checks thread offsets for the runtime
architecture and (3) checks callee-save method offsets for the
runtime architecture.

The "asm_support_XXX.h" files now only contain definitions that are
common between all architectures. Architecture-specific definitions
(i.e., special registers names) have been pushed into the corresponding
.S file. This change was required to be able to undefine definitions
in the test, so that multiple tests can be written in one file.

Test (1) above is in a sense two-stage. The arch_test gtest compares
constants (if it finds them) against the frame size as reported by
the ArtMethods created by the Runtime. This works for all architectures
as we can provide the instruction-set to CreateCalleeSaveMethod. The
second stage of the "test" are preprocessor tests with "#error" in the
case that the constants are not the expected value.

Optimally I'd like to change that to an actual runtime test exercising
the assembly code, which would also allow to check whether the right
registers are stored.

Also added missing assembly code for ARM64 for the callee-save macros.

Also fix X86_64 compilation for Clang 3.5.

Change-Id: I018e6433dffd3d31ba3bfcd75661653f4c7b6552

10 years agoMerge "Do not require dexopt when previous profile does not exist"
Brian Carlstrom [Fri, 25 Apr 2014 23:00:26 +0000 (23:00 +0000)]
Merge "Do not require dexopt when previous profile does not exist"

10 years agoMerge "Enable reading page map without lock in RosAlloc::BulkFree"
Mathieu Chartier [Fri, 25 Apr 2014 22:51:58 +0000 (22:51 +0000)]
Merge "Enable reading page map without lock in RosAlloc::BulkFree"

10 years agoDo not require dexopt when previous profile does not exist
Brian Carlstrom [Sat, 19 Apr 2014 00:44:01 +0000 (17:44 -0700)]
Do not require dexopt when previous profile does not exist

Also turn down some dex2oat related noise

Bug: 14184659
Change-Id: I134890f2c452d7f85ca4b736b5724f42533c2a7f

10 years agoMerge "ART: Enables x86_64 disassembly"
Ian Rogers [Fri, 25 Apr 2014 21:36:59 +0000 (21:36 +0000)]
Merge "ART: Enables x86_64 disassembly"

10 years agoEnable reading page map without lock in RosAlloc::BulkFree
Mathieu Chartier [Sat, 12 Apr 2014 00:53:48 +0000 (17:53 -0700)]
Enable reading page map without lock in RosAlloc::BulkFree

Enabling this flag greatly reduces how much time was spent in the GC.
It was not done previously since it was regressing MemAllocTest. With
these RosAlloc changes, the benchmark score no longer regresses after
we enable the flag.

Changed Run::AllocSlot to only have one mode of allocation. The new
mode is finding the first free bit in the bitmap. This was
previously the slow path but is now the fast path. Some optimizations
which enabled this include always having the alloc bitmap bits which
correspond to invalid slots be set to 1. This prevents us from needing
a bound check since we will never end up allocating there.

Changed revoking thread local buffer to point to an invalid run. The
invalid run is just a run which always has all the allocation bits set
to 1. When a thread attempts to do a thread local allocation from here
it will always fail and go slow path. This eliminates the need for a
null check for revoked runs.

Changed zeroing of memory to happen during free, AllocPages should
always return zeroed memory. Added prefetching which happens when we
allocate a run.

Some refactoring to reduce duplicated code.

Ergonomics changes: Changed kStickyGcThroughputAdjustment to 1.0,
this helps reduce GC time.

Measurements (3 samples per benchmark):
Before: MemAllocTest scores: 3463, 3445, 3431
EvaluateAndApplyChanges score | total GC time
Iter 1: 3485, 23.602436s
Iter 2: 3434, 22.499882s
Iter 3: 3483, 23.253274s

After: MemAllocTest scores: 3495, 3417, 3409
EvaluateAndApplyChanges score | total GC time:
Iter 1: 3375, 17.463462s
Iter 2: 3358, 16.185188s
Iter 3: 3367, 15.822312s

Bug: 8788501
Bug: 11790317
Bug: 9986565
Change-Id: Ifd273a054824028dabed27c07c081dde1816f93c

10 years agoMerge "Fix ART compilation for Clang 3.5."
Stephen Hines [Fri, 25 Apr 2014 20:47:14 +0000 (20:47 +0000)]
Merge "Fix ART compilation for Clang 3.5."

10 years agoART: Enables x86_64 disassembly
Vladimir Kostyukov [Fri, 18 Apr 2014 10:06:15 +0000 (17:06 +0700)]
ART: Enables x86_64 disassembly

This patch
  (a) cuts a REX prefix from the instruction and
  (b) adds missed 32bit disp to instructions with ModR/M and SIB bytes.

Change-Id: I2674678224ca27746b33d4006ed38d497972309f
Signed-off-by: Vladimir Kostyukov <vladimir.kostyukov@intel.com>
10 years agoMerge "Skip BBs without SSA representation in the Constant Propagation phase"
Bill Buzbee [Fri, 25 Apr 2014 16:36:07 +0000 (16:36 +0000)]
Merge "Skip BBs without SSA representation in the Constant Propagation phase"

10 years agoMerge "Revert "Revert "ART: Extracts an utility function of the duplicated code"""
Andreas Gampe [Fri, 25 Apr 2014 14:51:34 +0000 (14:51 +0000)]
Merge "Revert "Revert "ART: Extracts an utility function of the duplicated code"""

10 years agoMerge "Add a GTest for Assembly Stubs, Add some ARM64 and X86-64 Stubs"
Andreas Gampe [Fri, 25 Apr 2014 14:39:24 +0000 (14:39 +0000)]
Merge "Add a GTest for Assembly Stubs, Add some ARM64 and X86-64 Stubs"

10 years agoAdd a GTest for Assembly Stubs, Add some ARM64 and X86-64 Stubs
Andreas Gampe [Tue, 22 Apr 2014 22:44:50 +0000 (15:44 -0700)]
Add a GTest for Assembly Stubs, Add some ARM64 and X86-64 Stubs

This GTest adds some runtime testing for the stubs that does not
rely on the compiler. This should allow to add or update the stubs
and do testing, especially on architectures without working compiler.

This test is a bit dangerous: if it doesn't know how to handle an
architecture, it will only log a warning. This is so that testing
does not break at the moment. The warning is forced to stdout, too,
so that it is always visible.

Add art_quick_check_cast to ARM64 and X86-64. Add art_quick_memcpy
to X86-64. The latter should be removed in a good compiler, as it is
practically only overhead. Add minor CFI information in ARM.

Change-Id: Ia9c6d0f4035eb1527c12b5f6067dece59e25528d

10 years agoMove mapping table and vmap table offsets to OatMethodHeader.
Vladimir Marko [Wed, 9 Apr 2014 17:45:35 +0000 (18:45 +0100)]
Move mapping table and vmap table offsets to OatMethodHeader.

This change has a libcore/ companion CL
  "Remove ArtMethod's quick fields mapping table and vmap table."
  https://android-review.googlesource.com/91254

Bug: 11767815
Change-Id: I46ce2067e1ecd915da3890606498e31ffc332813

10 years agoMerge "Refactor exception handling for deoptimization"
Sebastien Hertz [Fri, 25 Apr 2014 09:23:16 +0000 (09:23 +0000)]
Merge "Refactor exception handling for deoptimization"

10 years agoRefactor exception handling for deoptimization
Sebastien Hertz [Wed, 23 Apr 2014 08:32:43 +0000 (10:32 +0200)]
Refactor exception handling for deoptimization

This CL refactors the exception handling (on the quick side) by isolating the
search of catch handler and the preparation of deoptimization.

We rename the CatchFinder class to QuickExceptionHandler so it's less specific
to catch handler search.

Finding catch handler happens in QuickExceptionHandler::FindCatch. Since the
CatchBlockStackVisitor resolves exception types, it may cause thread suspension
and breaks the assertion current thread can't be suspended. Therefore, we place
the exception in a SirtRef (while it is detached from the current thread) and
remove the thread suspension assertion.

Deoptimization now happens in QuickExceptionHandler::DeoptimizeStack. It uses
the new DeoptimizeStackVisitor class to create shadow frames.

We also add the Thread::GetDeoptimizationException method to get the definition
of the fake exception in only one place.

Change-Id: I01b19fa72af64329b5c3b6c7f0c3339d2d724978

10 years agoMerge "Resolve method's argument reference types"
Sebastien Hertz [Fri, 25 Apr 2014 08:14:11 +0000 (08:14 +0000)]
Merge "Resolve method's argument reference types"

10 years agoResolve method's argument reference types
Sebastien Hertz [Tue, 22 Apr 2014 15:11:08 +0000 (17:11 +0200)]
Resolve method's argument reference types

Using ResolveClassAndCheckAccess allows to resolve reference types and check
we have access to these types too. This also prevents from getting unresolved
reference types, which has been observed during deoptimization.

Bug: 13464407
Change-Id: I4c02fdff191c195f34502a4d4a20357419982eb1

10 years agoMerge "Support field watchpoint in interpreter"
Sebastien Hertz [Fri, 25 Apr 2014 07:37:49 +0000 (07:37 +0000)]
Merge "Support field watchpoint in interpreter"

10 years agoSupport field watchpoint in interpreter
Sebastien Hertz [Fri, 4 Apr 2014 15:51:34 +0000 (17:51 +0200)]
Support field watchpoint in interpreter

We report field read/write events to instrumentation from the interpreter. This
allows it to send JDWP field access and field modification events to debugger.
This completes CL https://android-review.googlesource.com/90390.

We also fix the JDWP FieldOnly modifier by introducing ModBasket.fieldTypeID.
We incorrectly used ModBasket.classId which is actually dedicated to ClassOnly
modifier based on thread's location's class id.

Finally, we now enable canWatchFieldModification and canWatchFieldAccess JDWP
capabilities so a debugger can request these events to be reported.

Bug: 8267708
Change-Id: I987852ad47abb27b2f7e78544a8189c7a4e2f462

10 years agoFix ART compilation for Clang 3.5.
Stephen Hines [Wed, 23 Apr 2014 23:03:57 +0000 (16:03 -0700)]
Fix ART compilation for Clang 3.5.

This change adds required <> to some template instantiations, which
Clang was complaining about (and ignoring otherwise). It also updates
the integrated assembler defines, since Clang 3.5 now supports named
arguments.

Change-Id: I878b8c96bcbc29415582c18a2df678b7f9a9d4ad

10 years agoMerge "Use __FUNCTION__ in CHECK_NON_NULL_*ARGUMENT."
Mathieu Chartier [Fri, 25 Apr 2014 00:33:57 +0000 (00:33 +0000)]
Merge "Use __FUNCTION__ in CHECK_NON_NULL_*ARGUMENT."

10 years agoUse __FUNCTION__ in CHECK_NON_NULL_*ARGUMENT.
Mathieu Chartier [Fri, 25 Apr 2014 00:17:21 +0000 (17:17 -0700)]
Use __FUNCTION__ in CHECK_NON_NULL_*ARGUMENT.

Prevents naming errors and reduces code maintenance requirements.

Change-Id: I14aba05f0d5dab8009f472b3af0b698551ac2a7e

10 years agoMerge "Make unresolved exception types cause soft verification errors."
Jeff Hao [Thu, 24 Apr 2014 23:55:44 +0000 (23:55 +0000)]
Merge "Make unresolved exception types cause soft verification errors."

10 years agoMake unresolved exception types cause soft verification errors.
Jeff Hao [Thu, 24 Apr 2014 23:25:36 +0000 (16:25 -0700)]
Make unresolved exception types cause soft verification errors.

Before, the verifier would allow the first exception it finds
for a catch block to be unresolved, but this causes problems if
it merges other exceptions later. The verifier should soft fail
for any unresolved exception type it finds.

Bug: 14256107
Change-Id: I22563ebfe8c9680cc676b73516d5b48bc9c4ecf3

10 years agoMerge "Clean up ScopedThreadStateChange + Get/SetPrimtiveArrayRegion"
Mathieu Chartier [Thu, 24 Apr 2014 23:51:49 +0000 (23:51 +0000)]
Merge "Clean up ScopedThreadStateChange + Get/SetPrimtiveArrayRegion"

10 years agoClean up ScopedThreadStateChange + Get/SetPrimtiveArrayRegion
Mathieu Chartier [Thu, 24 Apr 2014 23:14:43 +0000 (16:14 -0700)]
Clean up ScopedThreadStateChange + Get/SetPrimtiveArrayRegion

Simplified code in ScopedThreadStateChange and fixed an incorrect
name in Get/SetPrimitiveArrayRegion.

Change-Id: Id71affec1d64911449d792911cd52104dd179840

10 years agoRevert "Revert "ART: Extracts an utility function of the duplicated code""
Andreas Gampe [Thu, 24 Apr 2014 17:33:34 +0000 (17:33 +0000)]
Revert "Revert "ART: Extracts an utility function of the duplicated code""

This reverts commit b5a14d2a6c18c1ea3c019c53b10af2e8f5dea234.

Change-Id: Id09a4cc27ac22db940badf3a277848b38b173eae

10 years agoART: Bitvector extensions for dumping and size handling
Jean Christophe Beyler [Tue, 15 Apr 2014 22:54:35 +0000 (15:54 -0700)]
ART: Bitvector extensions for dumping and size handling

- Added dumping functions and the ensure size and clear function.
- Fixed a bug in union where if a bit is not set in the source, an buffer
   overflow can occur later down.

Change-Id: Iff40529f3a8970a1ce2dd5c591f659f71924dea3
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Yixin Shou <yixin.shou@intel.com>
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
10 years agoMerge "More code for the read barrier support."
Hiroshi Yamauchi [Thu, 24 Apr 2014 18:12:25 +0000 (18:12 +0000)]
Merge "More code for the read barrier support."

10 years agoMerge "Revert "ART: Extracts an utility function of the duplicated code""
Andreas Gampe [Thu, 24 Apr 2014 17:30:53 +0000 (17:30 +0000)]
Merge "Revert "ART: Extracts an utility function of the duplicated code""

10 years agoRevert "ART: Extracts an utility function of the duplicated code"
Andreas Gampe [Thu, 24 Apr 2014 17:30:35 +0000 (17:30 +0000)]
Revert "ART: Extracts an utility function of the duplicated code"

This reverts commit 973cc95da6fb617bab133bd7a693c1cb7eafd393.

Change-Id: I3883c74ba06116e89d89d9cf085f20cff5d15f77

10 years agoMerge "Add test that Class.newInstance does not wrap its exceptions."
Jeff Hao [Thu, 24 Apr 2014 16:06:14 +0000 (16:06 +0000)]
Merge "Add test that Class.newInstance does not wrap its exceptions."

10 years agoMerge "ART: Extracts an utility function of the duplicated code"
Andreas Gampe [Thu, 24 Apr 2014 15:46:02 +0000 (15:46 +0000)]
Merge "ART: Extracts an utility function of the duplicated code"

10 years agoART: Extracts an utility function of the duplicated code
Dmitry Petrochenko [Fri, 18 Apr 2014 07:53:09 +0000 (14:53 +0700)]
ART: Extracts an utility function of the duplicated code

This patch introduces an utility function 'DataOffsetOfType' in
'mirror::Array' class that calculates the data offset at given index
in an array of given type.

Change-Id: Idb19558653c70a129245f220f0fbb553f898865b
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
10 years agoMerge "ART: Fixes an issue with REX prefix for instructions with no ModRM byte"
Ian Rogers [Thu, 24 Apr 2014 06:20:29 +0000 (06:20 +0000)]
Merge "ART: Fixes an issue with REX prefix for instructions with no ModRM byte"

10 years agoAdd test that Class.newInstance does not wrap its exceptions.
Jeff Hao [Wed, 23 Apr 2014 21:51:46 +0000 (14:51 -0700)]
Add test that Class.newInstance does not wrap its exceptions.

Unlike Constructor.newInstance, Class.newInstance should not wrap
exceptions it throws.

Bug: https://code.google.com/p/android/issues/detail?id=68620

Change-Id: I47d78904e72f299284d1382bc715ab120d3b1a7f

10 years agoMerge "Don't allow heap transitions if the runtime is shutting down."
Mathieu Chartier [Thu, 24 Apr 2014 00:17:52 +0000 (00:17 +0000)]
Merge "Don't allow heap transitions if the runtime is shutting down."

10 years agoMerge "art: fix dlopen error message"
Colin Cross [Wed, 23 Apr 2014 22:42:51 +0000 (22:42 +0000)]
Merge "art: fix dlopen error message"

10 years agoart: fix dlopen error message
Colin Cross [Wed, 23 Apr 2014 21:56:31 +0000 (14:56 -0700)]
art: fix dlopen error message

detail is a std::string *, dereference it when logging the error
message.

Change-Id: If73a5806445df17d91ff1a7f4f3a6d31f0e9f54e

10 years agoMerge "Delete throw launchpads."
Mingyao Yang [Wed, 23 Apr 2014 22:02:33 +0000 (22:02 +0000)]
Merge "Delete throw launchpads."

10 years agoDon't allow heap transitions if the runtime is shutting down.
Mathieu Chartier [Wed, 23 Apr 2014 21:41:11 +0000 (14:41 -0700)]
Don't allow heap transitions if the runtime is shutting down.

Bug: 14254222
Change-Id: I97ac988a96b56a8dc1eec018bf3ef7a691f04745

10 years agoMerge "Separate maps from code in oat file."
Vladimir Marko [Wed, 23 Apr 2014 08:50:20 +0000 (08:50 +0000)]
Merge "Separate maps from code in oat file."

10 years agoMerge "Fix FindCatchBlock to work in -Xverify:none mode."
Jeff Hao [Wed, 23 Apr 2014 00:16:15 +0000 (00:16 +0000)]
Merge "Fix FindCatchBlock to work in -Xverify:none mode."

10 years agoFix FindCatchBlock to work in -Xverify:none mode.
Jeff Hao [Tue, 22 Apr 2014 20:54:32 +0000 (13:54 -0700)]
Fix FindCatchBlock to work in -Xverify:none mode.

FindCatchBlock now uses ResolveType to get the exception type,
since it might not be able to find it in the dex cache.

Bug: 13948502
Change-Id: Ia6f1c7dc743206ae1c8551bf6239f48ee4d3a784

10 years agoMerge "Remove support for app JNI workarounds."
Ian Rogers [Tue, 22 Apr 2014 23:03:01 +0000 (23:03 +0000)]
Merge "Remove support for app JNI workarounds."

10 years agoMerge "Warn when thread state lookup fails."
Ian Rogers [Tue, 22 Apr 2014 22:16:48 +0000 (22:16 +0000)]
Merge "Warn when thread state lookup fails."

10 years agoRemove support for app JNI workarounds.
Ian Rogers [Tue, 22 Apr 2014 18:42:59 +0000 (11:42 -0700)]
Remove support for app JNI workarounds.

Change-Id: I4396df7e93fcace4b5b19c2c387e5c30089182a6

10 years agoMore code for the read barrier support.
Hiroshi Yamauchi [Tue, 22 Apr 2014 20:51:07 +0000 (13:51 -0700)]
More code for the read barrier support.

Make it possible to disable the RB in Object::SizeOf() (and the
functions it calls transitively) which the collector will need to call
to get the size of an object when copying.

Add Object::AtomicSetReadBarrierPointer() for atomic write of a RB
pointer.

Bug: 12687968
Change-Id: Ibedd252860ac7ccd17e4e7d71b377a8892b48ff0

10 years agoMerge "Update load/store utilities for 64-bit backends"
buzbee [Tue, 22 Apr 2014 19:51:16 +0000 (19:51 +0000)]
Merge "Update load/store utilities for 64-bit backends"

10 years agoUpdate load/store utilities for 64-bit backends
buzbee [Sat, 19 Apr 2014 20:32:20 +0000 (13:32 -0700)]
Update load/store utilities for 64-bit backends

This CL replaces the typical use of LoadWord/StoreWord
utilities (which, in practice, were 32-bit load/store) in
favor of a new set that make the size explicit.  We now have:

   LoadWordDisp/StoreWordDisp:
    32 or 64 depending on target.  Load or store the natural
    word size.  Expect this to be used infrequently - generally
    when we know we're dealing with a native pointer or flushed
    register not holding a Dalvik value (Dalvik values will flush
    to home location sizes based on Dalvik, rather than the target).

   Load32Disp/Store32Disp:
     Load or store 32 bits, regardless of target.

   Load64Disp/Store64Disp:
     Load or store 64 bits, regardless of target.

   LoadRefDisp:
     Load a 32-bit compressed reference, and expand it to the
     natural word size in the target register.

   StoreRefDisp:
     Compress a reference held in a register of the natural word
     size and store it as a 32-bit compressed reference.

Change-Id: I50fcbc8684476abd9527777ee7c152c61ba41c6f

10 years agoMerge "Return bytes freed from RosAlloc."
Mathieu Chartier [Tue, 22 Apr 2014 18:12:32 +0000 (18:12 +0000)]
Merge "Return bytes freed from RosAlloc."

10 years agoReturn bytes freed from RosAlloc.
Mathieu Chartier [Sat, 12 Apr 2014 00:53:48 +0000 (17:53 -0700)]
Return bytes freed from RosAlloc.

There was a problem with how RosAlloc space sweeping worked caused by
using the object size in the FreeList call, this won't work well with
class unloading since the object's class may be freed before the
object.

Bug: 13989231
Change-Id: I3df439c312310720fd34249334dec85030166fe9

10 years agoWarn when thread state lookup fails.
Ian Rogers [Tue, 22 Apr 2014 17:51:17 +0000 (10:51 -0700)]
Warn when thread state lookup fails.

Change-Id: I06781caddcade26148921bc225f28db8b3a63a35

10 years agoSeparate maps from code in oat file.
Vladimir Marko [Tue, 8 Apr 2014 13:00:50 +0000 (14:00 +0100)]
Separate maps from code in oat file.

Write all GC maps first, then all mapping tables and then
all vmap tables and only then align the offset to page size
and write all method code chunks with headers.

Bug: 11767815
Change-Id: Ic83555c8303c5be119afc43e95e58c0a32ff2a4f

10 years agoMerge "Avoid allocating OatFile::OatClass on the heap."
Vladimir Marko [Tue, 22 Apr 2014 13:25:20 +0000 (13:25 +0000)]
Merge "Avoid allocating OatFile::OatClass on the heap."

10 years agoMerge "Fix crash when debugging exception"
Sebastien Hertz [Tue, 22 Apr 2014 09:23:39 +0000 (09:23 +0000)]
Merge "Fix crash when debugging exception"

10 years agoMerge "Revert "64bit changes to the stack walker for the Quick ABI.""
Nicolas Geoffray [Tue, 22 Apr 2014 08:30:46 +0000 (08:30 +0000)]
Merge "Revert "64bit changes to the stack walker for the Quick ABI.""

10 years agoRevert "64bit changes to the stack walker for the Quick ABI."
Nicolas Geoffray [Tue, 22 Apr 2014 08:30:19 +0000 (08:30 +0000)]
Revert "64bit changes to the stack walker for the Quick ABI."

This reverts commit 5cb328362a633302ca0fcdbaa0da7d94069df051.

Change-Id: Icc0ec1a9f15c2e4e9103e732d7ba75a4feb853b1

10 years agoMerge "64bit changes to the stack walker for the Quick ABI."
Nicolas Geoffray [Tue, 22 Apr 2014 07:48:56 +0000 (07:48 +0000)]
Merge "64bit changes to the stack walker for the Quick ABI."

10 years agoMerge "Speed up single-stepping"
Sebastien Hertz [Tue, 22 Apr 2014 07:05:52 +0000 (07:05 +0000)]
Merge "Speed up single-stepping"

10 years agoMerge "GenArithOpInt should ensure that reg is in core"
Bill Buzbee [Tue, 22 Apr 2014 04:37:42 +0000 (04:37 +0000)]
Merge "GenArithOpInt should ensure that reg is in core"

10 years agoDelete throw launchpads.
Mingyao Yang [Mon, 21 Apr 2014 22:39:44 +0000 (15:39 -0700)]
Delete throw launchpads.

Bug: 13170824

Change-Id: I9d5834f5a66f5eb00f2ac80774e8c27dea99949e

10 years agoMerge "Revert "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException."""
Mingyao Yang [Mon, 21 Apr 2014 22:30:12 +0000 (22:30 +0000)]
Merge "Revert "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException."""

10 years agoMerge "Add an option to specify a list of methods for LIR dumping."
Mingyao Yang [Mon, 21 Apr 2014 21:50:49 +0000 (21:50 +0000)]
Merge "Add an option to specify a list of methods for LIR dumping."

10 years agoMerge "ART: GTest target tests missing "PASSED""
Andreas Gampe [Mon, 21 Apr 2014 17:45:40 +0000 (17:45 +0000)]
Merge "ART: GTest target tests missing "PASSED""

10 years agoART: GTest target tests missing "PASSED"
Andreas Gampe [Mon, 21 Apr 2014 16:51:07 +0000 (09:51 -0700)]
ART: GTest target tests missing "PASSED"

This seems to have gotten lost a while ago.

Change-Id: Ia0114d4fc0dfcf6e53339307cd556e168312fc53

10 years agoMerge "Fix dependencies in the test suite for multi-target tests"
Andreas Gampe [Mon, 21 Apr 2014 16:33:28 +0000 (16:33 +0000)]
Merge "Fix dependencies in the test suite for multi-target tests"

10 years agoFix dependencies in the test suite for multi-target tests
Andreas Gampe [Mon, 21 Apr 2014 14:50:39 +0000 (07:50 -0700)]
Fix dependencies in the test suite for multi-target tests

Change-Id: I94dd767490a7cd8cceddc158d90f56f5bd3fef26

10 years agoSkip BBs without SSA representation in the Constant Propagation phase
Alexei Zavjalov [Mon, 21 Apr 2014 13:45:24 +0000 (20:45 +0700)]
Skip BBs without SSA representation in the Constant Propagation phase

In some cases the constant propagation optimization may get the MIR graph
where some of the BBs have no predecessors and do not transformed to the
SSA form. If such BB has operations on constants this may lead to segfault.
This patch adds the condition that will pass the only BBs with SSA.

Change-Id: I816d46b2492c5bd4748f983c3725b4798f9ebd68
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
10 years agoAdd an option to specify a list of methods for LIR dumping.
Mingyao Yang [Fri, 18 Apr 2014 23:49:39 +0000 (16:49 -0700)]
Add an option to specify a list of methods for LIR dumping.

An example would be:
--runtime-arg -verbose-methods:Array.checkRange32,Array.checkRange64
or
"-verbose-methods:void Array.checkRange32,void Array.checkRange64"

Change-Id: I61c1eb3b2eb4b24126a9264261c27889d53cc6bd

10 years agoMerge "Get instruction-set/features from build/core/config.mk"
Ian Rogers [Fri, 18 Apr 2014 23:23:04 +0000 (23:23 +0000)]
Merge "Get instruction-set/features from build/core/config.mk"

10 years agoGet instruction-set/features from build/core/config.mk
Ian Rogers [Fri, 18 Apr 2014 22:40:37 +0000 (15:40 -0700)]
Get instruction-set/features from build/core/config.mk

Depends upon https://android-review.googlesource.com/#/c/91524

Change-Id: Iad1a1b0499aac7acf7c4e42b62bb3fe4474e2f47

10 years agoMerge "Modify unwind to comply with stack parser tools."
Christopher Ferris [Fri, 18 Apr 2014 22:44:14 +0000 (22:44 +0000)]
Merge "Modify unwind to comply with stack parser tools."

10 years agoModify unwind to comply with stack parser tools.
Christopher Ferris [Thu, 17 Apr 2014 02:13:59 +0000 (19:13 -0700)]
Modify unwind to comply with stack parser tools.

Bug: 14081592

Change-Id: I6906b2575c74d64f1c3ba7602779b3a789de1c69

10 years agoMerge "Fixing missing newlines in Usage calls"
Brian Carlstrom [Fri, 18 Apr 2014 22:05:59 +0000 (22:05 +0000)]
Merge "Fixing missing newlines in Usage calls"

10 years agoRevert "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException.""
Mingyao Yang [Fri, 18 Apr 2014 19:10:58 +0000 (12:10 -0700)]
Revert "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException.""

This adds back using LIRSlowPath for ArrayIndexOutOfBoundsException.
And fix the host test crash.

Change-Id: Idbb602f4bb2c5ce59233feb480a0ff1b216e4887

10 years agoFixing missing newlines in Usage calls
Brian Carlstrom [Fri, 18 Apr 2014 21:18:41 +0000 (14:18 -0700)]
Fixing missing newlines in Usage calls

Change-Id: Ie5f1098dc7b3c485732bff929d36dbcc4b69511f

10 years agoMerge "Fix ForegroundHeapGrowthMultiplier and ParseDouble."
Mathieu Chartier [Fri, 18 Apr 2014 21:07:44 +0000 (21:07 +0000)]
Merge "Fix ForegroundHeapGrowthMultiplier and ParseDouble."

10 years agoFix ForegroundHeapGrowthMultiplier and ParseDouble.
Mathieu Chartier [Fri, 18 Apr 2014 19:02:39 +0000 (12:02 -0700)]
Fix ForegroundHeapGrowthMultiplier and ParseDouble.

ForegroundHeapGrowthMultiplier had a bad range of allowed values.
The new range is 0.1 - 10.0 instead of 0.1 to 0.9. ParseDouble usage
had incorrect printing var args and caused segfaults.

Change-Id: I4573005ee9f888cc8140200543176d6a2e17fccc

10 years agoMerge "Replace ObjectSet with LargeObjectBitmap."
Mathieu Chartier [Fri, 18 Apr 2014 18:27:49 +0000 (18:27 +0000)]
Merge "Replace ObjectSet with LargeObjectBitmap."

10 years agoMerge "Fix elf_writer_test for 64b target"
Andreas Gampe [Fri, 18 Apr 2014 17:11:36 +0000 (17:11 +0000)]
Merge "Fix elf_writer_test for 64b target"

10 years agoFix elf_writer_test for 64b target
Andreas Gampe [Fri, 18 Apr 2014 17:00:40 +0000 (10:00 -0700)]
Fix elf_writer_test for 64b target

The path to the core oat file is dependent on the bit-ness.

Change-Id: I725b9b0f760ae14d0c38d747ad31821da7445dec

10 years ago64bit changes to the stack walker for the Quick ABI.
Nicolas Geoffray [Thu, 17 Apr 2014 13:05:19 +0000 (14:05 +0100)]
64bit changes to the stack walker for the Quick ABI.

- Spill registers have different sizes.
- The ArtMethod at the bottom of the stack is always of kWordSize.

Change-Id: I92f67ff928477970c393c7146980255d08e8e6af

10 years agoMerge "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException.""
Sebastien Hertz [Fri, 18 Apr 2014 06:45:02 +0000 (06:45 +0000)]
Merge "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException.""