OSDN Git Service

android-x86/art.git
10 years agoMerge "Add GenBarrier() calls to terminate all IT blocks."
Dave Allison [Tue, 1 Apr 2014 23:44:59 +0000 (23:44 +0000)]
Merge "Add GenBarrier() calls to terminate all IT blocks."

10 years agoAdd GenBarrier() calls to terminate all IT blocks.
Dave Allison [Tue, 1 Apr 2014 22:14:46 +0000 (15:14 -0700)]
Add GenBarrier() calls to terminate all IT blocks.

This is needed to prevent things like load hoisting from putting
instructions inside the IT block.

Bug: 13749123
Change-Id: I98a010453b163ac20a90f626144f798fc06e65a9

10 years agoMerge "Fix ThreadStress, unify ANR lock descriptions."
Ian Rogers [Tue, 1 Apr 2014 22:46:11 +0000 (22:46 +0000)]
Merge "Fix ThreadStress, unify ANR lock descriptions."

10 years agoMerge "Fix Thread offsets for ARM64 assembly"
Andreas Gampe [Tue, 1 Apr 2014 22:44:36 +0000 (22:44 +0000)]
Merge "Fix Thread offsets for ARM64 assembly"

10 years agoMerge "Fix running with DlMalloc instead of RosAlloc."
Mathieu Chartier [Tue, 1 Apr 2014 22:37:45 +0000 (22:37 +0000)]
Merge "Fix running with DlMalloc instead of RosAlloc."

10 years agoFix ThreadStress, unify ANR lock descriptions.
Ian Rogers [Tue, 1 Apr 2014 22:33:03 +0000 (15:33 -0700)]
Fix ThreadStress, unify ANR lock descriptions.

Bug: 13323656
Change-Id: I902825a847af9aa570ed79701409298e3532bebf

10 years agoFix running with DlMalloc instead of RosAlloc.
Mathieu Chartier [Tue, 1 Apr 2014 22:01:46 +0000 (15:01 -0700)]
Fix running with DlMalloc instead of RosAlloc.

Bug: 13748830
Bug: 13744490

Change-Id: Ieec97cf58ebf9864a40ee85aae582cdcf3f27c0c

10 years agoFix Thread offsets for ARM64 assembly
Andreas Gampe [Tue, 1 Apr 2014 21:18:21 +0000 (14:18 -0700)]
Fix Thread offsets for ARM64 assembly

Change-Id: I8d0516091b5a865f415e1446425203785e607f8a

10 years agoMerge "Build changes to build multilib tests"
Andreas Gampe [Tue, 1 Apr 2014 21:13:05 +0000 (21:13 +0000)]
Merge "Build changes to build multilib tests"

10 years agoBuild changes to build multilib tests
Andreas Gampe [Wed, 26 Mar 2014 01:09:32 +0000 (18:09 -0700)]
Build changes to build multilib tests

Test files will be emitted into directories for both first and second
target architectures. Going with the naming scheme for binaries,
single-architecture and 32b cases have the standard name, and
64b goes into a directory with "64" suffix.

In multi-architecture setups, the default concrete test targets are
extended with a "32" and "64" suffix, e.g., test-art-target-oat-JniTest64.
The suffix-less form is linked to the primary architecture target (usually 64).
That means running combined targets, e.g., test-art-target-oat, will only
test the primary architecture right now.

Fixed target run tests calling the right dalvikvm. Fixed library search
path for tests derived from CommonRuntimeTest.

Missing in this work-in-progress is correct handling of dex2oat for the
secondary architecture. To make it work on 64b, comment out line 101
in build/Android.executable.mk

Change-Id: I3d260994e6efe8b73b56c71994053cc9392943a9

10 years agoMerge "Quick compiler: add comment to Arm encoding"
buzbee [Tue, 1 Apr 2014 20:56:35 +0000 (20:56 +0000)]
Merge "Quick compiler: add comment to Arm encoding"

10 years agoQuick compiler: add comment to Arm encoding
buzbee [Tue, 1 Apr 2014 19:42:20 +0000 (12:42 -0700)]
Quick compiler: add comment to Arm encoding

A question from an AOSP contributer demonstrated the need for
explanation of a seemingly odd encoding for vldrd/vldrs.  In short,
we add a "def" bit for lr on those instructions to cover the cases
in which we have to materialize a new base pointer at assembly
time using lr as a temp register.

Change-Id: I22c5740218a90e0ff387c6aac2bd20cc98eece85

10 years agoMerge "Fix reflection access checks for app compatibility."
Jeff Hao [Tue, 1 Apr 2014 18:33:31 +0000 (18:33 +0000)]
Merge "Fix reflection access checks for app compatibility."

10 years agoFix reflection access checks for app compatibility.
Jeff Hao [Tue, 1 Apr 2014 18:21:30 +0000 (11:21 -0700)]
Fix reflection access checks for app compatibility.

Also updates field access test.

Bug: 13740995

Change-Id: I224712cfcb0c05429b831c26980cabad7bdef49a

10 years agoMerge "Quick compiler, MIPS resource cleanup"
buzbee [Tue, 1 Apr 2014 18:15:02 +0000 (18:15 +0000)]
Merge "Quick compiler, MIPS resource cleanup"

10 years agoMerge "Revert "Fix access checks for app compatibility.""
Jeff Hao [Tue, 1 Apr 2014 18:04:42 +0000 (18:04 +0000)]
Merge "Revert "Fix access checks for app compatibility.""

10 years agoRevert "Fix access checks for app compatibility."
Jeff Hao [Tue, 1 Apr 2014 18:04:24 +0000 (18:04 +0000)]
Revert "Fix access checks for app compatibility."

This reverts commit b59b2c8dbdea2a6a3086378f2cf65adc9bc282cd.

Change-Id: I718658b8450a5ce6249df317b635f63356b1ce3c

10 years agoMerge "Add handler for printing java stack traces for compiled code SIGSEGV."
Mathieu Chartier [Tue, 1 Apr 2014 18:01:23 +0000 (18:01 +0000)]
Merge "Add handler for printing java stack traces for compiled code SIGSEGV."

10 years agoMerge "Fix access checks for app compatibility."
Jeff Hao [Tue, 1 Apr 2014 18:01:17 +0000 (18:01 +0000)]
Merge "Fix access checks for app compatibility."

10 years agoMerge "Make the support code for read barriers a bit more general."
Hiroshi Yamauchi [Tue, 1 Apr 2014 17:58:30 +0000 (17:58 +0000)]
Merge "Make the support code for read barriers a bit more general."

10 years agoFix access checks for app compatibility.
Jeff Hao [Tue, 1 Apr 2014 17:58:29 +0000 (10:58 -0700)]
Fix access checks for app compatibility.

Change-Id: I3191e5e92d30e9bee24051fd305296ddcf143e18

10 years agoAdd handler for printing java stack traces for compiled code SIGSEGV.
Mathieu Chartier [Sun, 30 Mar 2014 22:25:44 +0000 (15:25 -0700)]
Add handler for printing java stack traces for compiled code SIGSEGV.

Added a new FaultHandler which attempts to print a java stack trace
when a SIGSEGV occurse in generated code. This should help debugging
compiler and GC related heap corruption.

Bug: 13725693
Bug: 12934910

Change-Id: Id54d83ea180c222eb86d449c61926e83f0b026ad

10 years agoMerge "Calling convention support for cross 64/32 compilation."
Ian Rogers [Tue, 1 Apr 2014 17:57:01 +0000 (17:57 +0000)]
Merge "Calling convention support for cross 64/32 compilation."

10 years agoCalling convention support for cross 64/32 compilation.
Ian Rogers [Tue, 1 Apr 2014 17:36:00 +0000 (10:36 -0700)]
Calling convention support for cross 64/32 compilation.

Add REX support for x86-64 operands.

Change-Id: I093ae26fb8c111d54b8c72166f054984564c04c6

10 years agoMerge "Fix stack overflow slow path error."
Mathieu Chartier [Tue, 1 Apr 2014 16:30:24 +0000 (16:30 +0000)]
Merge "Fix stack overflow slow path error."

10 years agoMerge "Revert "Revert "Optimize easy multiply and easy div remainder."""
Ian Rogers [Tue, 1 Apr 2014 15:38:25 +0000 (15:38 +0000)]
Merge "Revert "Revert "Optimize easy multiply and easy div remainder."""

10 years agoMerge "Allow mixing of thread offsets between 32 and 64bit architectures."
Ian Rogers [Tue, 1 Apr 2014 15:33:07 +0000 (15:33 +0000)]
Merge "Allow mixing of thread offsets between 32 and 64bit architectures."

10 years agoAllow mixing of thread offsets between 32 and 64bit architectures.
Ian Rogers [Sat, 15 Mar 2014 00:43:00 +0000 (17:43 -0700)]
Allow mixing of thread offsets between 32 and 64bit architectures.

Begin a more full implementation x86-64 REX prefixes.
Doesn't implement 64bit thread offset support for the JNI compiler.

Change-Id: If9af2f08a1833c21ddb4b4077f9b03add1a05147

10 years agoMerge "art: Make calling convention immune to SIRT structure change"
Andreas Gampe [Tue, 1 Apr 2014 14:57:22 +0000 (14:57 +0000)]
Merge "art: Make calling convention immune to SIRT structure change"

10 years agoMerge "Fix instruction printing for filled-new-array"
Andreas Gampe [Tue, 1 Apr 2014 14:39:24 +0000 (14:39 +0000)]
Merge "Fix instruction printing for filled-new-array"

10 years agoMerge "Use ResetDef to prevent from removing necessary stores for x86 long-to-fp."
Bill Buzbee [Tue, 1 Apr 2014 14:38:36 +0000 (14:38 +0000)]
Merge "Use ResetDef to prevent from removing necessary stores for x86 long-to-fp."

10 years agoMerge "Disable timing sensitive tests on dist builds."
Nicolas Geoffray [Tue, 1 Apr 2014 09:14:51 +0000 (09:14 +0000)]
Merge "Disable timing sensitive tests on dist builds."

10 years agoMerge "Return correct JDWP type tag for array class"
Sebastien Hertz [Tue, 1 Apr 2014 09:07:49 +0000 (09:07 +0000)]
Merge "Return correct JDWP type tag for array class"

10 years agoMerge "Art script: Use PWD for android-data and cleanup after running."
Nicolas Geoffray [Tue, 1 Apr 2014 08:28:39 +0000 (08:28 +0000)]
Merge "Art script: Use PWD for android-data and cleanup after running."

10 years agoMerge "Add -lpthread -ldl to link executable/tests"
Andrew Hsieh [Tue, 1 Apr 2014 08:23:38 +0000 (08:23 +0000)]
Merge "Add -lpthread -ldl to link executable/tests"

10 years agoDisable timing sensitive tests on dist builds.
Brian Carlstrom [Mon, 31 Mar 2014 21:00:52 +0000 (14:00 -0700)]
Disable timing sensitive tests on dist builds.

Change-Id: I94ebeb5009fac7026bd157a12bdf39e392665a3a

10 years agoAdd -lpthread -ldl to link executable/tests
Andrew Hsieh [Tue, 1 Apr 2014 03:52:01 +0000 (11:52 +0800)]
Add -lpthread -ldl to link executable/tests

The new binutils-2.23 based linker in
prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6
no longer implicity adds dependencies on *so an executable needs.
eg.

  ld -o barrier_test barrier_test.o common_runtime_test.o ... -lartd

produces error messages read

  art/runtime/thread-inl.h:43: error: undefined reference to 'pthread_getspecific'
  art/runtime/common_runtime_test.h:219: error: undefined reference to 'dlsym'
  external/gtest/src/../include/gtest/internal/gtest-port.h:1482: error: undefined reference to 'pthread_getspecific'

because libartd.so DT_NEEDED libdl.so and libpthread.so, and new linker no longer
implicitly add both to dependencies.  Explicitly add -lpthread -ldl to fix the issue

Change-Id: Ic29c68480b2ed55d282be949640b9158411f213d

10 years agoart: Make calling convention immune to SIRT structure change
Dmitry Petrochenko [Mon, 31 Mar 2014 02:12:31 +0000 (09:12 +0700)]
art: Make calling convention immune to SIRT structure change

Introduce stack_indirect_reference_table::referencesOffset and
rely on it in calling convention to avoid issues if SIRT structure
change.

Change-Id: Icc0c5c5b1313173df2ee519ab8934183074fdfb6
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
10 years agoFix instruction printing for filled-new-array
Andreas Gampe [Tue, 1 Apr 2014 01:10:53 +0000 (18:10 -0700)]
Fix instruction printing for filled-new-array

Only print the registers that are actually used. The rest is
garbage.

Change-Id: Ic9f03a51f81b95f7c70cf3e19122c8980003ae36

10 years agoMerge "Implement implicit stack overflow checks"
Dave Allison [Tue, 1 Apr 2014 01:07:45 +0000 (01:07 +0000)]
Merge "Implement implicit stack overflow checks"

10 years agoImplement implicit stack overflow checks
Dave Allison [Thu, 27 Mar 2014 22:10:22 +0000 (15:10 -0700)]
Implement implicit stack overflow checks

This also fixes some failing run tests due to missing
null pointer markers.

The implementation of the implicit stack overflow checks introduces
the ability to have a gap in the stack that is skipped during
stack walk backs.  This gap is protected against read/write and
is used to trigger a SIGSEGV at function entry if the stack
will overflow.

Change-Id: I0c3e214c8b87dc250cf886472c6d327b5d58653e

10 years agoMake the support code for read barriers a bit more general.
Hiroshi Yamauchi [Mon, 31 Mar 2014 22:14:47 +0000 (15:14 -0700)]
Make the support code for read barriers a bit more general.

Add an option for Baker in addition to Brooks.

Bug: 12687968
Change-Id: I8a31db817ff6686c72951b6534f588228e270b11

10 years agoFix stack overflow slow path error.
Mathieu Chartier [Mon, 31 Mar 2014 23:11:41 +0000 (16:11 -0700)]
Fix stack overflow slow path error.

The frame size without spill was being passed into the slow path
instead of the spill size. This was incorrect since only the spills
will have been pushed at the point of the overflow check.

Also addressed an other comment.

Change-Id: Ic6e455122473a8f796b291d71f945bcf72788662

10 years agoMerge "Fix a DCHECK failure when causing GC from DDMS."
Hiroshi Yamauchi [Mon, 31 Mar 2014 18:34:45 +0000 (18:34 +0000)]
Merge "Fix a DCHECK failure when causing GC from DDMS."

10 years agoMerge "Mark ScopedArenaAllocator's allocations undefined for Valgrind."
Vladimir Marko [Mon, 31 Mar 2014 16:36:03 +0000 (16:36 +0000)]
Merge "Mark ScopedArenaAllocator's allocations undefined for Valgrind."

10 years agoMerge "Faster AssembleLIR for ARM."
Vladimir Marko [Mon, 31 Mar 2014 16:16:36 +0000 (16:16 +0000)]
Merge "Faster AssembleLIR for ARM."

10 years agoMark ScopedArenaAllocator's allocations undefined for Valgrind.
Vladimir Marko [Mon, 31 Mar 2014 14:32:56 +0000 (15:32 +0100)]
Mark ScopedArenaAllocator's allocations undefined for Valgrind.

Bug: 13659516
Change-Id: Id538c1bb1d256173a1f3db5ae0be920420da6d5d

10 years agoFaster AssembleLIR for ARM.
Vladimir Marko [Tue, 7 Jan 2014 18:21:20 +0000 (18:21 +0000)]
Faster AssembleLIR for ARM.

This also reduces sizeof(LIR) by 4 bytes (32-bit builds).

Change-Id: I0cb81f9bf098dfc50050d5bc705c171af26464ce

10 years agoMerge "Add support for adding two integers in optimizing compiler."
Nicolas Geoffray [Mon, 31 Mar 2014 10:44:46 +0000 (10:44 +0000)]
Merge "Add support for adding two integers in optimizing compiler."

10 years agoAdd support for adding two integers in optimizing compiler.
Nicolas Geoffray [Fri, 28 Mar 2014 15:43:40 +0000 (15:43 +0000)]
Add support for adding two integers in optimizing compiler.

Change-Id: I5524e193cd07f2692a57c6b4f8069904471b2928

10 years agoMerge "Remove use of pthread_cond_timedwait_monotonic."
Narayan Kamath [Mon, 31 Mar 2014 10:03:07 +0000 (10:03 +0000)]
Merge "Remove use of pthread_cond_timedwait_monotonic."

10 years agoMerge "Add support for invoke-static in optimizing compiler."
Nicolas Geoffray [Mon, 31 Mar 2014 09:15:30 +0000 (09:15 +0000)]
Merge "Add support for invoke-static in optimizing compiler."

10 years agoReturn correct JDWP type tag for array class
Sebastien Hertz [Fri, 28 Mar 2014 15:29:41 +0000 (16:29 +0100)]
Return correct JDWP type tag for array class

Uses GetTypeTag function to get JDWP type tag for a class. This fixes the
returned type tag in ClassObjectReference.ReflectedType command.

Bug: 13689172
Change-Id: Ibb9006eb604d84cfb8e279eaeed1982a136d6510

10 years agoAdd support for invoke-static in optimizing compiler.
Nicolas Geoffray [Wed, 19 Mar 2014 10:34:11 +0000 (10:34 +0000)]
Add support for invoke-static in optimizing compiler.

Support is limited to calls without parameters and returning
void. For simplicity, we currently follow the Quick ABI.

Change-Id: I54805161141b7eac5959f1cae0dc138dd0b2e8a5

10 years agoMerge "No longer restrict to -source 1.5 since it causes a warning with 1.7"
Brian Carlstrom [Sun, 30 Mar 2014 23:34:51 +0000 (23:34 +0000)]
Merge "No longer restrict to -source 1.5 since it causes a warning with 1.7"

10 years agoNo longer restrict to -source 1.5 since it causes a warning with 1.7
Brian Carlstrom [Sun, 30 Mar 2014 23:17:42 +0000 (16:17 -0700)]
No longer restrict to -source 1.5 since it causes a warning with 1.7

(cherry picked from commit e17838ffedee1796920636c2f99c933aa1ce4b3c)

Change-Id: Ied11738da9621280185a62f267a5d527e6ed927b

10 years agoUse ResetDef to prevent from removing necessary stores for x86 long-to-fp.
Chao-ying Fu [Sat, 29 Mar 2014 01:14:36 +0000 (18:14 -0700)]
Use ResetDef to prevent from removing necessary stores for x86 long-to-fp.

X86 long-to-fp needs the source operand in the memory.
Later on, NullifyRange may remove the stores and then lead to incorrect
long-to-fp conversions.
To fix this bug, ResetDef is called after flushing source to the memory
for x86 long-to-fp.

Change-Id: I3510739294dc2e5ffb3d76d7651880fae63f2382
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
10 years agoMerge "Fix non concurrent mark sweep ergonomics."
Mathieu Chartier [Fri, 28 Mar 2014 23:34:51 +0000 (23:34 +0000)]
Merge "Fix non concurrent mark sweep ergonomics."

10 years agoFix non concurrent mark sweep ergonomics.
Mathieu Chartier [Fri, 28 Mar 2014 23:22:20 +0000 (16:22 -0700)]
Fix non concurrent mark sweep ergonomics.

Previously we would continue to do sticky GC until the sticky GC did
not free enough memory for the allocation, this was excessive since it
could do one sticky GC per allocation. The new logic uses the next GC
type before trying all the GCs in the plan.

Before memalloc benchmark (non concurrent mark sweep):
Total time spent in GC: 11.212701s
Score: 7790

After:
Total time spent in GC: 9.422676s
Score: 6870

Change-Id: Iba75b70ea825ef3fd4b3e064d4f12c2fe5a3b176

10 years agoMerge "Some fixes for comments and implied conversions."
Jeff Hao [Fri, 28 Mar 2014 23:03:21 +0000 (23:03 +0000)]
Merge "Some fixes for comments and implied conversions."

10 years agoSome fixes for comments and implied conversions.
Jeff Hao [Fri, 28 Mar 2014 22:43:37 +0000 (15:43 -0700)]
Some fixes for comments and implied conversions.

Addresses comments in:
https://android-review.googlesource.com/#/c/89148/3

Change-Id: If21cfaa541210c8702371efd1e6d4f071a7b9ec3

10 years agoFix a DCHECK failure when causing GC from DDMS.
Hiroshi Yamauchi [Fri, 28 Mar 2014 22:26:48 +0000 (15:26 -0700)]
Fix a DCHECK failure when causing GC from DDMS.

Bug: 13647069
Change-Id: Iae2746b2b7b4493fcf5f0d40d2bf36a9b2d2efc8

10 years agoMerge "Swap allocation stacks in pause."
Mathieu Chartier [Fri, 28 Mar 2014 22:20:25 +0000 (22:20 +0000)]
Merge "Swap allocation stacks in pause."

10 years agoRevert "Revert "Optimize easy multiply and easy div remainder.""
Ian Rogers [Fri, 28 Mar 2014 15:47:16 +0000 (08:47 -0700)]
Revert "Revert "Optimize easy multiply and easy div remainder.""

This reverts commit 3654a6f50a948ead89627f398aaf86a2c2db0088.
Remove the part of the change that confused !is_div with being multiply rather
than implying remainder.

Change-Id: I202610069c69351259a320e8852543cbed4c3b3e

10 years agoMerge "Add access checks to Method and Field reflection."
Jeff Hao [Fri, 28 Mar 2014 21:41:16 +0000 (21:41 +0000)]
Merge "Add access checks to Method and Field reflection."

10 years agoAdd access checks to Method and Field reflection.
Jeff Hao [Wed, 26 Mar 2014 22:08:20 +0000 (15:08 -0700)]
Add access checks to Method and Field reflection.

Art side of this change. Has a corresponding libcore change.

Bug: 13620925
Change-Id: Ie67f802a2a400e8212b489b9a261b7028422d8ba

10 years agoSwap allocation stacks in pause.
Mathieu Chartier [Fri, 28 Mar 2014 17:05:39 +0000 (10:05 -0700)]
Swap allocation stacks in pause.

This enables us to collect objects allocated during the GC for both
sticky, partial, and full GC. This also significantly simplifies GC
code. No measured performance impact on benchmarks, but this should
slightly increase sticky GC throughput.

Changed RevokeRosAllocThreadLocalBuffers to happen at most once per
GC. Previously it occured twice if pre-cleaning was enabled.

Renamed HandleDirtyObjectsPhase to PausePhase and enabled it for
non-concurrent GC. This helps reduce duplicated code which was in
both HandleDirtyObjectsPhase for concurrent GC and ReclaimPhase for
non-concurrent GC.

Change-Id: I533414b5c2cd2800f00724418e0ff90e7fdb0252

10 years agoQuick compiler, MIPS resource cleanup
buzbee [Fri, 28 Mar 2014 19:59:18 +0000 (12:59 -0700)]
Quick compiler, MIPS resource cleanup

MIPS architecture includes internal registers HI and LO.
Similar to condition codes in other architectures, these internal
resouces must be accounted for during instruction scheduling.

Previously, the Quick backend for MIPS dealt with them by defining
rHI and rLO pseudo registers - treating them as actual registers for
def/use masks.  This CL changes the handling of these resources to
be in line with how condition codes are used elsewhere - leaving
register definitions to be used for registers.

Change-Id: Idcd77f3107b0c9b081ad05b1aab663fb9f41492d

10 years agoMerge "Refactor some GC code."
Mathieu Chartier [Fri, 28 Mar 2014 18:54:08 +0000 (18:54 +0000)]
Merge "Refactor some GC code."

10 years agoMerge "An empty collector skeleton for a read barrier-based collector."
Hiroshi Yamauchi [Fri, 28 Mar 2014 18:35:27 +0000 (18:35 +0000)]
Merge "An empty collector skeleton for a read barrier-based collector."

10 years agoRefactor some GC code.
Mathieu Chartier [Thu, 27 Mar 2014 23:09:46 +0000 (16:09 -0700)]
Refactor some GC code.

Reduced amount of code in mark sweep / semi space by moving
common logic to garbage_collector.cc. Cleaned up mod union tables
and deleted an unused implementation.

Change-Id: I4bcc6ba41afd96d230cfbaf4d6636f37c52e37ea

10 years agoMerge "x86_64: JNI compiler"
Andreas Gampe [Fri, 28 Mar 2014 17:44:50 +0000 (17:44 +0000)]
Merge "x86_64: JNI compiler"

10 years agoMerge "Properly dump register type in verifier failure messages"
Sebastien Hertz [Fri, 28 Mar 2014 14:14:12 +0000 (14:14 +0000)]
Merge "Properly dump register type in verifier failure messages"

10 years agoProperly dump register type in verifier failure messages
Sebastien Hertz [Fri, 28 Mar 2014 13:34:28 +0000 (14:34 +0100)]
Properly dump register type in verifier failure messages

Fixes failure messages where we miss to dereference pointer to RegType. This
caused to dump the address of the reg type instead of the reg type itself.

Also moves merging tests of primitive types from RegTypeReferenceTest to
RegTypeTest class.

Change-Id: I71cea419fdaa9ac46d7c011eb23e8746a14fb378

10 years agoMerge "Annotate Dalvik VR access as both use and def if we use it in this way"
Bill Buzbee [Fri, 28 Mar 2014 13:02:49 +0000 (13:02 +0000)]
Merge "Annotate Dalvik VR access as both use and def if we use it in this way"

10 years agox86_64: JNI compiler
Dmitry Petrochenko [Fri, 21 Mar 2014 04:21:37 +0000 (11:21 +0700)]
x86_64: JNI compiler

Passed all tests from jni_compiler_test and art/test on host with jni_copiler.
Incoming argument spill is enabled, entry_spills refactored. Now each entry spill
contains data type size (4 or 8) and offset which should be used for spill.
Assembler REX support implemented in opcodes used in JNI compiler.
Please note, JNI compiler is not enabled by default yet (see compiler_driver.cc:1875).

Change-Id: I5fd19cca72122b197aec07c3708b1e80c324be44
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
10 years agoAnnotate Dalvik VR access as both use and def if we use it in this way
Serguei Katkov [Thu, 27 Mar 2014 07:41:56 +0000 (14:41 +0700)]
Annotate Dalvik VR access as both use and def if we use it in this way

Some 2addr operations use direct access to VR in memory as both def and use but
annotate its only as def. It results in later optimizations like reorder
of LIRs can re-order this operation with other mov.

Change-Id: I04ac40c9f229af6f1e5c5f91f4901b1452509582
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
10 years agoAn empty collector skeleton for a read barrier-based collector.
Hiroshi Yamauchi [Fri, 28 Mar 2014 04:07:51 +0000 (21:07 -0700)]
An empty collector skeleton for a read barrier-based collector.

Bug: 12687968

Change-Id: Ic2a3a7b9943ca64e7f60f4d6ed552a316ea4a6f3

10 years agoMerge "Revert "Optimize easy multiply and easy div remainder.""
Brian Carlstrom [Fri, 28 Mar 2014 00:24:17 +0000 (00:24 +0000)]
Merge "Revert "Optimize easy multiply and easy div remainder.""

10 years agoMerge "Error when taking the modulo of the length of an array"
Brian Carlstrom [Fri, 28 Mar 2014 00:24:09 +0000 (00:24 +0000)]
Merge "Error when taking the modulo of the length of an array"

10 years agoRevert "Optimize easy multiply and easy div remainder."
Brian Carlstrom [Fri, 28 Mar 2014 00:14:26 +0000 (17:14 -0700)]
Revert "Optimize easy multiply and easy div remainder."

This reverts commit 08df4b3da75366e5db37e696eaa7e855cba01deb.

10 years agoError when taking the modulo of the length of an array
Brian Carlstrom [Thu, 27 Mar 2014 23:54:27 +0000 (16:54 -0700)]
Error when taking the modulo of the length of an array

Bug: 13679511
Change-Id: I4c694a9d85727af8095091c42f1ac00a78ba4ea2

10 years agoMerge "Fix CopyRegInfo to keep live/dirty flags of new registers."
Bill Buzbee [Thu, 27 Mar 2014 22:56:48 +0000 (22:56 +0000)]
Merge "Fix CopyRegInfo to keep live/dirty flags of new registers."

10 years agoFix CopyRegInfo to keep live/dirty flags of new registers.
Chao-ying Fu [Thu, 27 Mar 2014 21:17:28 +0000 (14:17 -0700)]
Fix CopyRegInfo to keep live/dirty flags of new registers.

CopyRegInfo should not change live/dirty flags of new registgers.
Otherwise, it will lead to incorrectly clobbering these live registers
that are not live actually, and then allocating them to another usage.

Change-Id: Ia9f055b33a11a6d70c0aca1a9fe8639ecfb09464
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
10 years agoMerge "Change sticky GC ergonomics to use GC throughput."
Mathieu Chartier [Thu, 27 Mar 2014 22:35:27 +0000 (22:35 +0000)]
Merge "Change sticky GC ergonomics to use GC throughput."

10 years agoChange sticky GC ergonomics to use GC throughput.
Mathieu Chartier [Thu, 27 Mar 2014 17:55:04 +0000 (10:55 -0700)]
Change sticky GC ergonomics to use GC throughput.

The old sticky ergonomics used partial/full GC when the bytes until
the footprint limit was < min free. This was suboptimal. The new
sticky GC ergonomics do partial/full GC when the throughput
of the current sticky GC iteration is <= mean throughput of the
partial/full GC.

Total GC time on FormulaEvaluationActions.EvaluateAndApplyChanges.
Before: 26.4s
After: 24.8s
No benchmark score change measured.

Bug: 8788501

Change-Id: I90000305e93fd492a8ef5a06ec9620d830eaf90d

10 years agoMerge "Remove bogus DCHECK."
Ian Rogers [Thu, 27 Mar 2014 21:36:12 +0000 (21:36 +0000)]
Merge "Remove bogus DCHECK."

10 years agoRemove bogus DCHECK.
Ian Rogers [Thu, 27 Mar 2014 21:27:09 +0000 (14:27 -0700)]
Remove bogus DCHECK.

Bug: 13637540
Change-Id: I39f19443156cf5bdc26e3eeb0bb501a850d40dca

10 years agoMerge "Fix x86 master build failure."
buzbee [Thu, 27 Mar 2014 19:24:15 +0000 (19:24 +0000)]
Merge "Fix x86 master build failure."

10 years agoFix x86 master build failure.
buzbee [Thu, 27 Mar 2014 18:22:43 +0000 (11:22 -0700)]
Fix x86 master build failure.

Replace bogus DCHECKs with logic matching pre-cleanup code.
Register pairs are considered temp, promoted, dirty or live if
either register of the pair meets criteria.

Change-Id: If2df891fdd1e3351d4cbe72aaf2a2ac5b34b2110

10 years agoMerge "Support inlining with breakpoint"
Sebastien Hertz [Thu, 27 Mar 2014 15:42:30 +0000 (15:42 +0000)]
Merge "Support inlining with breakpoint"

10 years agoMerge "Last patch for running tests on ARM64"
Andreas Gampe [Thu, 27 Mar 2014 15:25:32 +0000 (15:25 +0000)]
Merge "Last patch for running tests on ARM64"

10 years agoSupport inlining with breakpoint
Sebastien Hertz [Thu, 20 Mar 2014 15:40:17 +0000 (16:40 +0100)]
Support inlining with breakpoint

When installing/uninstalling a breakpoint in a method, we fully or selectively
deoptimize/undeoptimize depending on whether the method can be inlined. When
the method can be inlined, it requires full deoptimization. Otherwise, it only
requires selective deoptimization.

We add sanity check to control we are in a consistent state each time we add or
remove a breakpoint. We also add some comments to better describe the process
of deoptimization for breakpoint.

Bug: 12187616
Change-Id: Id15adc6e5e2fe783c83c925cbcd19ae02431b7e0

10 years agoMerge "Handle Array::Memmove within the same array properly."
Ian Rogers [Thu, 27 Mar 2014 15:18:37 +0000 (15:18 +0000)]
Merge "Handle Array::Memmove within the same array properly."

10 years agoHandle Array::Memmove within the same array properly.
Ian Rogers [Thu, 27 Mar 2014 05:53:56 +0000 (22:53 -0700)]
Handle Array::Memmove within the same array properly.

Motivated by discussions in:
  https://android-review.googlesource.com/#/c/88940/
memcpy can't be relied upon to be a forward copy for overlapping regions of
memory.

Change-Id: I409f75e97204250546bf0b8082e2b62026bddedc

10 years agoLast patch for running tests on ARM64
Andreas Gampe [Wed, 26 Mar 2014 21:53:21 +0000 (14:53 -0700)]
Last patch for running tests on ARM64

This allows all run-tests to succeed with the interpreter+GenJNI
setup.

Change-Id: I45734e7e57340439369a613ef4329e3be2c0c4c9

10 years agoMerge "Reflection tidying."
Ian Rogers [Thu, 27 Mar 2014 15:00:08 +0000 (15:00 +0000)]
Merge "Reflection tidying."

10 years agoMerge "Optimize easy multiply and easy div remainder."
Bill Buzbee [Thu, 27 Mar 2014 13:08:19 +0000 (13:08 +0000)]
Merge "Optimize easy multiply and easy div remainder."

10 years agoMerge "Refactor deoptimization support in debugger"
Sebastien Hertz [Thu, 27 Mar 2014 07:46:58 +0000 (07:46 +0000)]
Merge "Refactor deoptimization support in debugger"

10 years agoMerge "Do not suspend current thread to build stacktrace from DDMS"
Sebastien Hertz [Thu, 27 Mar 2014 07:42:07 +0000 (07:42 +0000)]
Merge "Do not suspend current thread to build stacktrace from DDMS"