OSDN Git Service

android-x86/art.git
10 years agoMerge "Make arm64 build with ART_TARGET_CLANG."
Tim Murray [Fri, 2 May 2014 19:34:04 +0000 (19:34 +0000)]
Merge "Make arm64 build with ART_TARGET_CLANG."

10 years agoMerge "Add additional flags to make ART_TARGET_CLANG function with 3.5."
Tim Murray [Fri, 2 May 2014 19:34:01 +0000 (19:34 +0000)]
Merge "Add additional flags to make ART_TARGET_CLANG function with 3.5."

10 years agoMerge "Assert dex-cache is populated following resolution in debug builds."
Ian Rogers [Fri, 2 May 2014 19:09:25 +0000 (19:09 +0000)]
Merge "Assert dex-cache is populated following resolution in debug builds."

10 years agoMerge "Add finalizer references from the entrypoints."
Mathieu Chartier [Fri, 2 May 2014 19:04:09 +0000 (19:04 +0000)]
Merge "Add finalizer references from the entrypoints."

10 years agoMerge "Replace the bool kDoReadBarrier template parameter with an enum."
Hiroshi Yamauchi [Fri, 2 May 2014 18:48:03 +0000 (18:48 +0000)]
Merge "Replace the bool kDoReadBarrier template parameter with an enum."

10 years agoMerge "Add GC cause to WaitForGcToComplete message."
Mathieu Chartier [Fri, 2 May 2014 18:27:18 +0000 (18:27 +0000)]
Merge "Add GC cause to WaitForGcToComplete message."

10 years agoAdd GC cause to WaitForGcToComplete message.
Mathieu Chartier [Fri, 2 May 2014 17:27:26 +0000 (10:27 -0700)]
Add GC cause to WaitForGcToComplete message.

Change-Id: I8fe107d90a84de065c407b8d29fd106267ac440d

10 years agoMerge "ART: Move oat_data_flow_attributes_ to private and put an API"
Vladimir Marko [Fri, 2 May 2014 18:14:45 +0000 (18:14 +0000)]
Merge "ART: Move oat_data_flow_attributes_ to private and put an API"

10 years agoAssert dex-cache is populated following resolution in debug builds.
Ian Rogers [Fri, 2 May 2014 18:09:57 +0000 (11:09 -0700)]
Assert dex-cache is populated following resolution in debug builds.

Change-Id: I71bf6677935bbf6963c0d368fec3a28a454edbc6

10 years agoMake arm64 build with ART_TARGET_CLANG.
Tim Murray [Wed, 30 Apr 2014 21:09:31 +0000 (14:09 -0700)]
Make arm64 build with ART_TARGET_CLANG.

Change-Id: If47ba8afbce3bbe9696cc7d6d08502e07aba5e7d

10 years agoART: Move oat_data_flow_attributes_ to private and put an API
Jean Christophe Beyler [Fri, 2 May 2014 16:34:13 +0000 (09:34 -0700)]
ART: Move oat_data_flow_attributes_ to private and put an API

The oat_data_flow_attributes had no checking mechanism to ensure bound
 correctness.

This fix handles this and also offers two functions to retrieve the
 attributes: using the MIR and DecodedInstruction.

Change-Id: Ib4f1f749efb923a803d364a4eea83a174527a644
Signed-Off-By: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
10 years agoMerge "Implement object lock and unlock entrypoints for x86-64"
Andreas Gampe [Fri, 2 May 2014 17:22:59 +0000 (17:22 +0000)]
Merge "Implement object lock and unlock entrypoints for x86-64"

10 years agoMerge "Replace CountOneBits and __builtin_popcount with POPCOUNT."
Vladimir Marko [Fri, 2 May 2014 16:55:00 +0000 (16:55 +0000)]
Merge "Replace CountOneBits and __builtin_popcount with POPCOUNT."

10 years agoReplace CountOneBits and __builtin_popcount with POPCOUNT.
Vladimir Marko [Fri, 2 May 2014 10:53:22 +0000 (11:53 +0100)]
Replace CountOneBits and __builtin_popcount with POPCOUNT.

Clean up utils.h, make some functions constexpr.

Change-Id: I2399100280cbce81c3c4f5765f0680c1ddcb5883

10 years agoMerge "Don't leak oat file when we fail to open a dex file."
Vladimir Marko [Fri, 2 May 2014 10:16:39 +0000 (10:16 +0000)]
Merge "Don't leak oat file when we fail to open a dex file."

10 years agoImplement object lock and unlock entrypoints for x86-64
Alexei Zavjalov [Fri, 2 May 2014 09:45:40 +0000 (16:45 +0700)]
Implement object lock and unlock entrypoints for x86-64

This patch adds implementation for art_quick_lock_object and
art_quick_unlock_object stubs for x86-64 and enables their
testing in stub_test.

Change-Id: Ia373c9b0ebc7ebb959968464cf55607afd5384b0
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
10 years agoMerge "Revert "Revert "64bit changes to the stack walker for the Quick ABI."""
Nicolas Geoffray [Fri, 2 May 2014 09:46:08 +0000 (09:46 +0000)]
Merge "Revert "Revert "64bit changes to the stack walker for the Quick ABI."""

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

This reverts commit 8d5ead52a92675c258113d3dfa71bf8fceba5d9f.

Change-Id: I6b4774a9bd180de33551975e106322ba1192e6ab

10 years agoReplace the bool kDoReadBarrier template parameter with an enum.
Hiroshi Yamauchi [Fri, 2 May 2014 04:25:41 +0000 (21:25 -0700)]
Replace the bool kDoReadBarrier template parameter with an enum.

Fix one kDoReadBarrier/kIsVolatile mixup in an Object::GetFieldObject
call.

Bug: 12687968

Change-Id: I896b1137b21a20c0504abd2bf3fe6f83805f3300

10 years agoAdd finalizer references from the entrypoints.
Mathieu Chartier [Thu, 24 Apr 2014 23:48:11 +0000 (16:48 -0700)]
Add finalizer references from the entrypoints.

We now have an invariant where we never allocate finalizable
objects with the Initialized or Resolved entrypoints. This speeds up
allocation by only doing the check in the slow path.

Before:
MemAllocTest: 3625, 3707, 3641
EvaluateAndApplyChanges: 3448, 3421, 3413

After:
MemAllocTest: 3164, 3109, 3135
EvaluateAndApplyChanges: 3272, 3299, 3353

Bug: 14078487

Change-Id: I2b0534af3e7c75ea5e5257cf3647744f7abfb74e

10 years agoMerge "Implement art_quick_string_compareto entrypoint for x86-64"
Andreas Gampe [Thu, 1 May 2014 23:42:21 +0000 (23:42 +0000)]
Merge "Implement art_quick_string_compareto entrypoint for x86-64"

10 years agoImplement art_quick_string_compareto entrypoint for x86-64
Alexei Zavjalov [Thu, 1 May 2014 16:24:05 +0000 (23:24 +0700)]
Implement art_quick_string_compareto entrypoint for x86-64

This adds implementation of the art_quick_string_compareto
entrypoint for the x86-64 platform.

Add a test to stub_test, enabled for arm, x86 and x86-64.

Change-Id: I71b318b03d4c8920ccb3723b59c43542e219bf47
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
10 years agoMerge "Disable the ahead-of-time compilation for MIPS."
Ian Rogers [Thu, 1 May 2014 23:19:20 +0000 (23:19 +0000)]
Merge "Disable the ahead-of-time compilation for MIPS."

10 years agoMerge "Fix the tools/art script about the ISA-specific dalvik cache."
Hiroshi Yamauchi [Thu, 1 May 2014 23:01:31 +0000 (23:01 +0000)]
Merge "Fix the tools/art script about the ISA-specific dalvik cache."

10 years agoFix the tools/art script about the ISA-specific dalvik cache.
Hiroshi Yamauchi [Thu, 1 May 2014 22:14:34 +0000 (15:14 -0700)]
Fix the tools/art script about the ISA-specific dalvik cache.

Bug: 14470552
Change-Id: I71367052d2a5f0dcf66cf2dfdbc260aff4ac952e

10 years agoMerge "ART: aarch64 jni compiler needs to extend small return types"
Andreas Gampe [Thu, 1 May 2014 22:03:42 +0000 (22:03 +0000)]
Merge "ART: aarch64 jni compiler needs to extend small return types"

10 years agoART: aarch64 jni compiler needs to extend small return types
Andreas Gampe [Thu, 1 May 2014 21:38:56 +0000 (14:38 -0700)]
ART: aarch64 jni compiler needs to extend small return types

As aarch64 calling convention does not mandate extension on return
values anymore and leaves the upper bits undefined, the jni compiler
needs to sign- or zero-extend the returned values when necessary.

As three architectures need extension now, refactor this fact into a
flag into a virtual method.

Add tests to JniTest that exercise the required extension.

Change-Id: Idebb7c4dedebb852e58ade63e1c2b1eeced23104

10 years agoMerge "Update clean-oat targets to handle ISA directories"
Brian Carlstrom [Thu, 1 May 2014 21:21:17 +0000 (21:21 +0000)]
Merge "Update clean-oat targets to handle ISA directories"

10 years agoUpdate clean-oat targets to handle ISA directories
Brian Carlstrom [Thu, 1 May 2014 20:52:23 +0000 (13:52 -0700)]
Update clean-oat targets to handle ISA directories

Change-Id: Ia2f04058deff7b31ac458064723b05a6eb0e7f8d

10 years agoDisable the ahead-of-time compilation for MIPS.
Ian Rogers [Thu, 1 May 2014 19:24:37 +0000 (12:24 -0700)]
Disable the ahead-of-time compilation for MIPS.

Bug: 14464004

Change-Id: I551c0dc4122853a1a9ab566d03bac74cc057cba5

10 years agoMerge "Add thread unsafe allocation methods to spaces."
Mathieu Chartier [Thu, 1 May 2014 17:14:10 +0000 (17:14 +0000)]
Merge "Add thread unsafe allocation methods to spaces."

10 years agoMerge "Clean up Add/Remove space."
Mathieu Chartier [Thu, 1 May 2014 16:29:34 +0000 (16:29 +0000)]
Merge "Clean up Add/Remove space."

10 years agoMerge "ART: Fix target run-tests to build architecture directories"
Andreas Gampe [Thu, 1 May 2014 16:04:50 +0000 (16:04 +0000)]
Merge "ART: Fix target run-tests to build architecture directories"

10 years agoART: Fix target run-tests to build architecture directories
Andreas Gampe [Thu, 1 May 2014 15:47:51 +0000 (08:47 -0700)]
ART: Fix target run-tests to build architecture directories

The recent dalvik-cache layout changes require the tests to create
the right directories, as ART does not auto-create outside of /tmp

(cherry picked from commit 335438a512d016bb0e582304c0a6a1ad510bcc47)

Change-Id: Ie9045cc34be8b2f106fdec4f3bf37ad830637756

10 years agoMerge "Fix a few 64-bit compilation of 32-bit code issues."
Ian Rogers [Thu, 1 May 2014 15:32:10 +0000 (15:32 +0000)]
Merge "Fix a few 64-bit compilation of 32-bit code issues."

10 years agoFix a few 64-bit compilation of 32-bit code issues.
Ian Rogers [Thu, 1 May 2014 02:04:27 +0000 (19:04 -0700)]
Fix a few 64-bit compilation of 32-bit code issues.

Bug: 13423943

Change-Id: I939389413af0a68c0d95b23cd598b7c42afa4383

10 years agoDon't leak oat file when we fail to open a dex file.
Vladimir Marko [Thu, 1 May 2014 14:43:47 +0000 (15:43 +0100)]
Don't leak oat file when we fail to open a dex file.

Change-Id: I929b34d240d2052d1eea8344b6fa79646920a4c1

10 years agoMerge "Fix errno checking for dalvik-cache creation."
Narayan Kamath [Thu, 1 May 2014 13:58:05 +0000 (13:58 +0000)]
Merge "Fix errno checking for dalvik-cache creation."

10 years agoMerge "Use instruction specific dalvik cache dirs."
Narayan Kamath [Thu, 1 May 2014 13:57:35 +0000 (13:57 +0000)]
Merge "Use instruction specific dalvik cache dirs."

10 years agoFix errno checking for dalvik-cache creation.
Narayan Kamath [Wed, 30 Apr 2014 16:25:23 +0000 (17:25 +0100)]
Fix errno checking for dalvik-cache creation.

On the host, it's possible for /tmp/foo/dalvik-cache/<isa> to
not exist, but for /tmp/foo/dalvik-cache to be already present.
In this scenario, the first mkdir() can fail with EEXIST.

(cherry picked from commit 6fa28aef44106eef4a7195adb5eb77f6e5531572)

Change-Id: I1da79ad23a4ff510a0f87eca4b52d9f52ab791ad

10 years agoUse instruction specific dalvik cache dirs.
Narayan Kamath [Wed, 23 Apr 2014 19:24:57 +0000 (20:24 +0100)]
Use instruction specific dalvik cache dirs.

- All oat & art files are now placed under /data/dalvik-cache/<isa>/.
- GetDalvikCacheOrDie now requires a mandatory subdirectory argument,
  and is implicitly rooted under /data/.
- Added helper methods to convert InstructionSet enums into strings
  and vice versa.

(cherry picked from commit 2974bc3d8a5d161d449dd66826d668d87bdc3cbe)

Change-Id: Ic7986938e6a7091a2af675ebafec768f7b5fb8cd

10 years agoMerge "Fix host build with clang 3.3"
Brian Carlstrom [Thu, 1 May 2014 03:29:03 +0000 (03:29 +0000)]
Merge "Fix host build with clang 3.3"

10 years agoFix host build with clang 3.3
Brian Carlstrom [Thu, 1 May 2014 03:19:27 +0000 (20:19 -0700)]
Fix host build with clang 3.3

(cherry picked from commit d31ce7d053045f4c8509ae6ab61819287010ad92)

Change-Id: If4133d72a61b23347cb2da549308cf6fb0280850

10 years agoMerge "x86_64 Assembler Test Infrastructure, fix x86_64 assembler"
Andreas Gampe [Thu, 1 May 2014 02:28:00 +0000 (02:28 +0000)]
Merge "x86_64 Assembler Test Infrastructure, fix x86_64 assembler"

10 years agox86_64 Assembler Test Infrastructure, fix x86_64 assembler
Andreas Gampe [Mon, 31 Mar 2014 23:50:12 +0000 (16:50 -0700)]
x86_64 Assembler Test Infrastructure, fix x86_64 assembler

Some infrastructure to do real assembler testing. Need to extend to
other assemblers, and a lot more tests.

Fix some of the cases of the x86_64 assembler.

Change-Id: I15b5f3a094af469130db68a95a66602cf30d8fc4

10 years agoMerge "Add heap reference size to the checks in arch_test"
Andreas Gampe [Thu, 1 May 2014 01:41:37 +0000 (01:41 +0000)]
Merge "Add heap reference size to the checks in arch_test"

10 years agoMerge "Implement art_quick_aput_object stubs for X86-64 and ARM64"
Andreas Gampe [Thu, 1 May 2014 01:33:51 +0000 (01:33 +0000)]
Merge "Implement art_quick_aput_object stubs for X86-64 and ARM64"

10 years agoAdd heap reference size to the checks in arch_test
Andreas Gampe [Thu, 1 May 2014 01:28:55 +0000 (18:28 -0700)]
Add heap reference size to the checks in arch_test

As we will potentially make heap references larger than 32b on 64b
systems at some point, add a constant to the .h files that describes
what the current assembly implementation assumes about the size of
heap references, and check whether that agrees with sizeof.

Change-Id: I75ffd7e2b59891ec36977fd831a8d5faac69c76d

10 years agoImplement art_quick_aput_object stubs for X86-64 and ARM64
Andreas Gampe [Tue, 29 Apr 2014 23:55:52 +0000 (16:55 -0700)]
Implement art_quick_aput_object stubs for X86-64 and ARM64

Implement the aput_object stubs for 64b architectures and enable
their testing in stub_test.

Fix missing @PLT for x86.

Add automatic _local labels in function definitions in x86-64 so we
can make local jumps (instead of PLT hoops).

Change-Id: I614b88fd5966acd8a564b87c47d4c50ee605320c

10 years agoClean up Add/Remove space.
Mathieu Chartier [Wed, 30 Apr 2014 23:45:02 +0000 (16:45 -0700)]
Clean up Add/Remove space.

Deleted the set_as_default parameter and added a new function
SetSpaceAsDefault instead.

Change-Id: Ic4c359854d08e64ac0d0df92f0105447adb9df36

10 years agoAdd thread unsafe allocation methods to spaces.
Mathieu Chartier [Tue, 29 Apr 2014 21:37:57 +0000 (14:37 -0700)]
Add thread unsafe allocation methods to spaces.

Used by SS/GSS collectors since these run with mutators suspended and
only allocate from a single thread. Added AllocThreadUnsafe to
BumpPointerSpace and RosAllocSpace. Added AllocThreadUnsafe which uses
current runs as thread local runs for a thread unsafe allocation.
Added code to revoke current runs which are the same idx as thread
local runs.

Changed:
The number of thread local runs in each thread is now the the number
of thread local runs in RosAlloc instead of the number of size
brackets.

Total GC time / time on EvaluateAndApplyChanges.
TLAB SS:
Before: 36.7s / 7254
After: 16.1s / 4837

TLAB GSS:
Before: 6.9s / 3973
After: 5.7s / 3778

Bug: 8981901

Change-Id: Id1d264ade3799f431bf7ebbdcca6146aefbeb632

10 years agoMerge "Don't allow allocating finalizable objects during transactions."
Mathieu Chartier [Wed, 30 Apr 2014 22:22:55 +0000 (22:22 +0000)]
Merge "Don't allow allocating finalizable objects during transactions."

10 years agoMerge "Simplify GenConstString"
Mingyao Yang [Wed, 30 Apr 2014 22:13:39 +0000 (22:13 +0000)]
Merge "Simplify GenConstString"

10 years agoAdd additional flags to make ART_TARGET_CLANG function with 3.5.
Tim Murray [Wed, 30 Apr 2014 20:40:58 +0000 (13:40 -0700)]
Add additional flags to make ART_TARGET_CLANG function with 3.5.

Change-Id: I5fbf29e5d08d905f7585fb6d0de9472e3f3ed218

10 years agoDon't allow allocating finalizable objects during transactions.
Mathieu Chartier [Tue, 29 Apr 2014 18:13:16 +0000 (11:13 -0700)]
Don't allow allocating finalizable objects during transactions.

It doesn't make sense to allocate finalizable objects during a
transcation since they will never get finalized without a started
runtime.

Before StatusInitialized in core.host.oatdump.txt: 3564
After StatusInitialized in core.host.oatdump.txt: 3564

Bug: 14078487

Change-Id: I7070536f7bb87bfc691d4268bd39a3eca492f48e

10 years agoSimplify GenConstString
Mingyao Yang [Tue, 29 Apr 2014 22:55:37 +0000 (15:55 -0700)]
Simplify GenConstString

Now it's the same code for all platforms.

Bug: 13506069
Change-Id: I42c08a9dc99a3079caad01602de84296c9357dd8

10 years agoMerge "Force inlining on trivial accessors."
Ian Rogers [Tue, 29 Apr 2014 21:57:01 +0000 (21:57 +0000)]
Merge "Force inlining on trivial accessors."

10 years agoMerge "Rewrite suspend test check with LIRSlowPath."
Mingyao Yang [Tue, 29 Apr 2014 21:46:03 +0000 (21:46 +0000)]
Merge "Rewrite suspend test check with LIRSlowPath."

10 years agoForce inlining on trivial accessors.
Ian Rogers [Mon, 28 Apr 2014 23:47:08 +0000 (16:47 -0700)]
Force inlining on trivial accessors.

Make volatility for GetFieldObject a template parameter.
Move some trivial mirror::String routines to a -inl.h.

Bug: 14285442

Change-Id: Ie23b11d4f18cb15a62c3bbb42837a8aaf6b68f92

10 years agoRewrite suspend test check with LIRSlowPath.
Mingyao Yang [Fri, 25 Apr 2014 18:06:00 +0000 (11:06 -0700)]
Rewrite suspend test check with LIRSlowPath.

Change-Id: I2dc17d079655586bfc588349c7a04afc2c6879af

10 years agoMerge "Enable concurrent sweeping for non-concurrent GC."
Mathieu Chartier [Tue, 29 Apr 2014 20:02:20 +0000 (20:02 +0000)]
Merge "Enable concurrent sweeping for non-concurrent GC."

10 years agoEnable concurrent sweeping for non-concurrent GC.
Mathieu Chartier [Wed, 23 Apr 2014 19:42:27 +0000 (12:42 -0700)]
Enable concurrent sweeping for non-concurrent GC.

Refactored the GarbageCollector to let all of the phases be run by
the collector's RunPhases virtual method. This lets the GC decide
which phases should be concurrent and reduces how much baked in GC
logic resides in GarbageCollector.

Enabled concurrent sweeping in the semi space and non concurrent
mark sweep GCs. Changed the semi-space collector to have a swap semi
spaces boolean which can be changed with a setter.

Fixed tests to pass with GSS collector, there was an error related to
the large object space limit.

Before (EvaluateAndApplyChanges):
GSS paused GC time 7.81s/7.81s, score: 3920

After (EvaluateAndApplyChanges):
GSS paused GC time 6.94s/7.71s, score: 3900

Benchmark score doesn't go up since the GC happens in the allocating
thread. There is a slight reduction in pause times experienced by
other threads (0.8s total).

Added options for pre sweeping GC heap verification and pre sweeping
rosalloc verification.

Bug: 14226004
Bug: 14250892
Bug: 14386356

Change-Id: Ib557d0590c1ed82a639d0f0281ba67cf8cae938c

10 years agoMerge "Disable StubTest.APutObj if heap poisoning is enabled."
Hiroshi Yamauchi [Tue, 29 Apr 2014 19:01:53 +0000 (19:01 +0000)]
Merge "Disable StubTest.APutObj if heap poisoning is enabled."

10 years agoMerge "Add ARM64 & X86_64 Assembly, plus tests"
Andreas Gampe [Tue, 29 Apr 2014 18:17:14 +0000 (18:17 +0000)]
Merge "Add ARM64 & X86_64 Assembly, plus tests"

10 years agoAdd ARM64 & X86_64 Assembly, plus tests
Andreas Gampe [Fri, 25 Apr 2014 22:47:13 +0000 (15:47 -0700)]
Add ARM64 & X86_64 Assembly, plus tests

This adds assembly code or removes UNTESTED annotation from
TWO_ARG_DOWNCALLand THREE_ARG_DOWNCALL macros and supporting code,
generating working allocation stubs.

Some object and array allocation tests are added to the stub_test.

Change-Id: I5e93b7543c1e6dbd33b0d4cf564c7cbd963e74ef

10 years agoMerge "ART: Initialization of RegLocation and API for GrowableArray Iterator"
Vladimir Marko [Tue, 29 Apr 2014 15:11:54 +0000 (15:11 +0000)]
Merge "ART: Initialization of RegLocation and API for GrowableArray Iterator"

10 years agoART: Initialization of RegLocation and API for GrowableArray Iterator
Jean Christophe Beyler [Tue, 15 Apr 2014 23:18:48 +0000 (16:18 -0700)]
ART: Initialization of RegLocation and API for GrowableArray Iterator

Two things:

- Added a default initialization for the RegLocation.
- Added a default constructor and Reset for the GrowableArray's Iterator class.

Change-Id: I74d9c584304c77add42e0d66e4037ac45b890142
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 "Quick compiler: debugging assists"
buzbee [Tue, 29 Apr 2014 13:13:24 +0000 (13:13 +0000)]
Merge "Quick compiler: debugging assists"

10 years agoQuick compiler: debugging assists
buzbee [Tue, 29 Apr 2014 03:02:38 +0000 (20:02 -0700)]
Quick compiler: debugging assists

A few minor assists to ease A/B debugging in the Quick
compiler:
   1.  To save time, the assemblers for some targets only
update the object code offsets on instructions involved with
pc-relative fixups.  We add code to fix up all offsets when
doing a verbose codegen listing.
   2.  Temp registers are normally allocated in a round-robin
fashion.  When disabling liveness tracking, we now reset the
round-robin pool to 0 on each instruction boundary.  This makes
it easier to spot real codegen differences.
   3.  Self-register copies were previously emitted, but
marked as nops.  Minor change to avoid generating them in the
first place and reduce clutter.

Change-Id: I7954bba3b9f16ee690d663be510eac7034c93723

10 years agoMerge "Setup policies for register allocation."
Nicolas Geoffray [Tue, 29 Apr 2014 10:01:15 +0000 (10:01 +0000)]
Merge "Setup policies for register allocation."

10 years agoSetup policies for register allocation.
Nicolas Geoffray [Mon, 28 Apr 2014 16:47:12 +0000 (17:47 +0100)]
Setup policies for register allocation.

Change-Id: I857e77530fca3e2fb872fc142a916af1b48400dc

10 years agoMerge "Fix DDM recent allocations"
Sebastien Hertz [Tue, 29 Apr 2014 07:43:03 +0000 (07:43 +0000)]
Merge "Fix DDM recent allocations"

10 years agoFix DDM recent allocations
Sebastien Hertz [Mon, 28 Apr 2014 07:26:50 +0000 (09:26 +0200)]
Fix DDM recent allocations

A class may not have source file in which case ClassHelper::GetSourceFile
returns NULL. Adding the GetMethodSourceFile function helps us preventing
from dealing with null strings.

Bug: 14300208
Change-Id: I28707f883bacec4ee367ff703328d0f0240855f9

10 years agoMerge "Visit deoptimized shadow frames as roots"
Sebastien Hertz [Tue, 29 Apr 2014 07:25:00 +0000 (07:25 +0000)]
Merge "Visit deoptimized shadow frames as roots"

10 years agoVisit deoptimized shadow frames as roots
Sebastien Hertz [Mon, 28 Apr 2014 13:03:08 +0000 (15:03 +0200)]
Visit deoptimized shadow frames as roots

During deoptimization, we create shadow frames but do not attach them to the
stack until we transition to interpreter mode. If a GC happens before that,
these shadow frames are not visited by GC so they may contain stale references.

This CL addresses this issue by visiting the shadow frames "under contruction"
in Thread::VisitRoots so we correctly update all references they hold.

To make them visible, we now save the top shadow frame (the first one created)
in the field Thread::tls_ptr_sized_values::deoptimization_shadow_frame. This
field will then be cleared when transitioning to interpreter mode.

Bug: 14324885
Change-Id: Ib213ddc80f19cfcdfcec6f20acaa7f1a0e9ce2c1

10 years agoDisable StubTest.APutObj if heap poisoning is enabled.
Hiroshi Yamauchi [Tue, 29 Apr 2014 00:21:48 +0000 (17:21 -0700)]
Disable StubTest.APutObj if heap poisoning is enabled.

The StubTest.APutObj test currently fails (crashes) as it runs code
that does not support heap poisoning yet. Disable it until such
support is added.

Bug: 12687968
Change-Id: I70d1f7f300e70ffae970ebeca9a29849aa7dffc6

10 years agoMerge "Improve GSS reference processing."
Hiroshi Yamauchi [Tue, 29 Apr 2014 00:09:59 +0000 (00:09 +0000)]
Merge "Improve GSS reference processing."

10 years agoMerge "Track package change."
Elliott Hughes [Mon, 28 Apr 2014 20:56:16 +0000 (20:56 +0000)]
Merge "Track package change."

10 years agoMerge "Remove unreachable JNI workaround code."
Ian Rogers [Mon, 28 Apr 2014 20:47:28 +0000 (20:47 +0000)]
Merge "Remove unreachable JNI workaround code."

10 years agoMerge "Always log explicit GC."
Mathieu Chartier [Mon, 28 Apr 2014 20:45:36 +0000 (20:45 +0000)]
Merge "Always log explicit GC."

10 years agoImprove GSS reference processing.
Hiroshi Yamauchi [Wed, 23 Apr 2014 00:10:48 +0000 (17:10 -0700)]
Improve GSS reference processing.

Support the case where the reference object is in the free list space
and the referent object is in the bump pointer space at a bump pointer
space collection.

Bug: 11650816
Change-Id: If98b08edc9e37351c74ee07cb3f2d30c2b4d0056

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 agoTrack package change.
Elliott Hughes [Mon, 28 Apr 2014 18:25:17 +0000 (11:25 -0700)]
Track package change.

art could keep using the "private" package, but it doesn't _need_ to
so it makes sense to switch it over to the [future] public package.

Change-Id: I715e0079fe64886ca9e4a9399bb525a7f8fadab0

10 years agoRemove unreachable JNI workaround code.
Ian Rogers [Mon, 28 Apr 2014 18:24:16 +0000 (11:24 -0700)]
Remove unreachable JNI workaround code.

Change-Id: I8d737ced8b553ed80a1fd72560e62abd78ff8b12

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