OSDN Git Service

android-x86/art.git
10 years agoam 6d5e82f7: ART: Fix wrong CHECK in GetCurrentLocationForThrow
Andreas Gampe [Fri, 25 Jul 2014 12:25:59 +0000 (12:25 +0000)]
am 6d5e82f7: ART: Fix wrong CHECK in GetCurrentLocationForThrow

* commit '6d5e82f78d7b121a33f935521e0a7f5335cab213':
  ART: Fix wrong CHECK in GetCurrentLocationForThrow

10 years agoam b3ec51e6: ART: Relax CurrentMethodVisitor requirements on GetDexPC
Andreas Gampe [Fri, 25 Jul 2014 12:25:58 +0000 (12:25 +0000)]
am b3ec51e6: ART: Relax CurrentMethodVisitor requirements on GetDexPC

* commit 'b3ec51e63c5041f77389ee001b47a8897b2a7acc':
  ART: Relax CurrentMethodVisitor requirements on GetDexPC

10 years agoam 9157c0ca: ART: Account for multidex location strings in VMClassLoader
Andreas Gampe [Fri, 25 Jul 2014 12:25:53 +0000 (12:25 +0000)]
am 9157c0ca: ART: Account for multidex location strings in VMClassLoader

* commit '9157c0ca6a57fa9f6378aebcfb2e3ff76622499a':
  ART: Account for multidex location strings in VMClassLoader

10 years agoART: Fix wrong CHECK in GetCurrentLocationForThrow
Andreas Gampe [Fri, 25 Jul 2014 10:07:06 +0000 (03:07 -0700)]
ART: Fix wrong CHECK in GetCurrentLocationForThrow

Under certain circumstances kDexNoIndex is actually an encoded
dex pc. Change the setup of CurrentMethodVisitor to account for that.

Bug: 16556938

(cherry picked from commit f9df5c1639a9418fcdf70476556a4c30b210701e)

Change-Id: Icb1d42ccd22296e2e0c629ebbd7e4d8c7d87f07a

10 years agoART: Relax CurrentMethodVisitor requirements on GetDexPC
Andreas Gampe [Thu, 17 Jul 2014 05:20:31 +0000 (22:20 -0700)]
ART: Relax CurrentMethodVisitor requirements on GetDexPC

In case we want to dump a Java stack after an unhandled fault, in
case we hold a thinlocked monitor, that monitor might get inflated.
That can cause an abort as we may not have enough/correct information
for the state at the bottom-most call.

Relax GetDexPc in the CurrentMethodVisitor to not abort when it cannot
find a dex pc. Instead, let the caller handle such a case. This CL
allows the locking_dex_pc_ in Monitor to be DexFile::kDexNoIndex,
which avoids the above abort.

Bug: 1635280216556938

(cherry picked from commit 4a8c3fa4bd8d95fac5671ab778dd00b6dc3ec0e4)

Change-Id: I60d3d89603de65752d9230ceac6abb0242388c18

10 years agoART: Account for multidex location strings in VMClassLoader
Andreas Gampe [Thu, 24 Jul 2014 22:35:50 +0000 (15:35 -0700)]
ART: Account for multidex location strings in VMClassLoader

To look up resources, look in the unadorned location.

Bug: 16530747

(cherry picked from commit cb8f9e8a2941971c049b26745ea713c859342d9b)

Change-Id: I5dce30c5e3c9f38fb5436c43a3f4a51fe4062c24

10 years agoam 4857b868: Merge "Integrate ART with NativeBridge interfaces"
Andreas Gampe [Fri, 25 Jul 2014 04:09:24 +0000 (04:09 +0000)]
am 4857b868: Merge "Integrate ART with NativeBridge interfaces"

* commit '4857b868f7d5941255afc847c07f49ae496d0e1c':
  Integrate ART with NativeBridge interfaces

10 years agoam c0dcf291: Fix stale remembered sets error.
Mathieu Chartier [Thu, 24 Jul 2014 23:33:21 +0000 (23:33 +0000)]
am c0dcf291: Fix stale remembered sets error.

* commit 'c0dcf29143051cf34d6c032a7b385ac4579bd4ec':
  Fix stale remembered sets error.

10 years agoam 5dc158e9: Fix access to long/double stack values from debugger
Sebastien Hertz [Thu, 24 Jul 2014 23:30:54 +0000 (23:30 +0000)]
am 5dc158e9: Fix access to long/double stack values from debugger

* commit '5dc158e9b6635b6c5d3916ae4094e8886feb4580':
  Fix access to long/double stack values from debugger

10 years agoMerge "Integrate ART with NativeBridge interfaces"
Andreas Gampe [Fri, 25 Jul 2014 04:01:32 +0000 (04:01 +0000)]
Merge "Integrate ART with NativeBridge interfaces"

10 years agoIntegrate ART with NativeBridge interfaces
Yong WU [Thu, 24 Jul 2014 13:32:15 +0000 (21:32 +0800)]
Integrate ART with NativeBridge interfaces

Native-bridge will provide the following interfaces to ART:

struct NativeBridgeCallbacks {
  bool  (*initialize   )(NativeBridgeArtCallbacks* vm_itf);
  void* (*loadLibrary  )(const char* libpath, int flag);
  void* (*getTrampoline)(void* handle, const char* name, const char* shorty,
                         uint32_t len);
  bool  (*isSupported  )(const char* libpath);
};

Native-bridge will expose a symbol NativeBridgeItf with the
type of NativeBridgeCallbacks to ART.

And ART will provide the interfaces below to native-bridge:

struct NativeBridgeArtCallbacks {
  int   (*logger               )(int prio, const char* tag, const char* fmt, ...);
  const char* (*getMethodShorty)(JNIEnv* env, jmethodID mid);
  int   (*getNativeMethodCount )(JNIEnv* env, jclass clazz);
  int   (*getNativeMethods     )(JNIEnv* env, jclass clazz, JNINativeMethod* methods,
                                 uint32_t method_count);
};

Based on the interfaces, if an ART call to dlopen fails to open a native library,
it queries the native bridge by using NativeBridgeCallbacks::isSupported(). If the
native library is supported by native-bridge, ART can load the native library
using NativeBridgeCallbacks::loadLibrary() and get a trampoline for a specific
native method using NativeBridgeCallbacks::getTrampoline(). ART can then call
the native method using the normal signature and the address of the trampoline.

On the other side, in the case of a native method calling JNI native function
CallXXXXMethodY(), native-bridge calls back to Art for the shorty of the method
using NativeBridgeArtCallbacks::getMethodShorty() so that it can prepare based
on host calling convention.

In case of JNI function RegisterNatives()/UnregisterNatives(), native bridge can
call back to NativeBridgeArtCallbacks::getNativeMethodCount() and NativeBridgeArtCallbacks
::getNativeMethods() to get all native methods of specified class so that all
corresponding trampolines can be prepared/destroyed.

Class NativeBridge is created to encapsulate the function pointers of
NativeBridgeCallbacks and provides better abstraction to ART.

Note: functionality is turned off in native_bridge.cc at the moment.

Change-Id: I652755044957a7960254648652b538cce70dd011

10 years agoam 54f3c041: Merge "Fix memory leak in RemoveRememberedSet."
Mathieu Chartier [Thu, 24 Jul 2014 20:55:16 +0000 (20:55 +0000)]
am 54f3c041: Merge "Fix memory leak in RemoveRememberedSet."

* commit '54f3c041365647fc79260b65e70b4290d0b50f1c':
  Fix memory leak in RemoveRememberedSet.

10 years agoresolved conflicts for merge of bebee4fd to lmp-dev-plus-aosp
Andreas Gampe [Thu, 24 Jul 2014 19:38:06 +0000 (12:38 -0700)]
resolved conflicts for merge of bebee4fd to lmp-dev-plus-aosp

10 years agoam d68168e9: Merge "ART: Do not attempt to compile a method with too many registers...
Andreas Gampe [Thu, 24 Jul 2014 19:23:46 +0000 (19:23 +0000)]
am d68168e9: Merge "ART: Do not attempt to compile a method with too many registers" into lmp-dev

* commit 'd68168e9f0c416a3ef29d9b9504ae436fa482c44':
  ART: Do not attempt to compile a method with too many registers

10 years agoam 1f710373: Merge "ART: Check high part of dalvik register pairs on put-wide" into...
Andreas Gampe [Thu, 24 Jul 2014 19:23:44 +0000 (19:23 +0000)]
am 1f710373: Merge "ART: Check high part of dalvik register pairs on put-wide" into lmp-dev

* commit '1f7103731d5a13925fbb6730d4f65d2a314c9e6d':
  ART: Check high part of dalvik register pairs on put-wide

10 years agoam 0f45f22e: (-s ours) ART: Throw StackOverflowError in native code
Andreas Gampe [Thu, 24 Jul 2014 19:23:44 +0000 (19:23 +0000)]
am 0f45f22e: (-s ours) ART: Throw StackOverflowError in native code

* commit '0f45f22eb3c52f0ece4c56989180e79c6680d825':
  ART: Throw StackOverflowError in native code

10 years agoresolved conflicts for merge of 7521704f to lmp-dev-plus-aosp
Mathieu Chartier [Thu, 24 Jul 2014 18:27:04 +0000 (11:27 -0700)]
resolved conflicts for merge of 7521704f to lmp-dev-plus-aosp

Change-Id: Id4fe1e4c222c79a9b743e267ddca407976295248

10 years agoFix stale remembered sets error.
Mathieu Chartier [Thu, 24 Jul 2014 01:45:17 +0000 (18:45 -0700)]
Fix stale remembered sets error.

We were forgetting to remove the remembered set in transition to
background. This resulted in remembered sets being added for
spaces which no longer existed. This finally caused an error when
a new space happened to have the same address as the old space,
resulting in a CHECK failure.

Also tuned the number of ParallelGC to prevent spurrious failures
and removed the ParallelGC from broken tests in the make file.

Bug: 16532086
Bug: 16406852

Change-Id: I00bbcbd7daa03c867732d165be62b72e6c43bce1

(cherry picked from c5a8347ac491a5f521945d3835a322123830456b)

10 years agoam ca928ba8: Merge "Fix access to long/double stack values from debugger"
Sebastien Hertz [Thu, 24 Jul 2014 12:56:31 +0000 (12:56 +0000)]
am ca928ba8: Merge "Fix access to long/double stack values from debugger"

* commit 'ca928ba8b9e109ced2b9d72622dc34bda63ac211':
  Fix access to long/double stack values from debugger

10 years agoFix access to long/double stack values from debugger
Sebastien Hertz [Wed, 16 Jul 2014 09:56:07 +0000 (11:56 +0200)]
Fix access to long/double stack values from debugger

Long and double values live in a pair of DEX registers. When we compile DEX
code with the Quick compiler, a DEX register either lives in the stack or is
promoted to a physical register. In the case of a pair of DEX registers, the
Quick compiler assumes both registers live in the same "area": both live in
the stack or both are promoted to physical registers.

From the debugger, we used to access these values by reading/writing each DEX
register separately. However, this does not work when only one DEX register of
a pair is promoted and the other lives in the stack. In this case, the compiled
code reads from/writes to the stack only.

To fix that, the debugger must follow the same rule than the Quick compiler: if
both DEX registers are promoted, read/write them from/to physical registers,
otherwise read/write them from/to the stack. We add StackVisitor:GetVRegPair and
StackVisitor:SetVRegPair for this purpose.

We also follow the same rule when deoptimizing. However we need to do that only
when we know two consecutive DEX registers are part of a pair (long or double).
We know that thanks to the verifier.

Bug: 15527793

(cherry picked from commit c901dd7bdc80b953d04100ef2f54b8d1ca5f466b)

Change-Id: I981e088295254d75352f83a3e6ba0b292cfe3ed3

10 years agoam 3017527b: Merge "Increase limit to 2600 on host clang builds for frame size."
Stephen Hines [Thu, 24 Jul 2014 02:57:47 +0000 (02:57 +0000)]
am 3017527b: Merge "Increase limit to 2600 on host clang builds for frame size."

* commit '3017527bf4ceced296b8885426b86ac939ab755f':
  Increase limit to 2600 on host clang builds for frame size.

10 years agoam 7f9c8f7b: Merge "Update frame-larger-than limit to 2440 for new clang."
Stephen Hines [Thu, 24 Jul 2014 02:25:06 +0000 (02:25 +0000)]
am 7f9c8f7b: Merge "Update frame-larger-than limit to 2440 for new clang."

* commit '7f9c8f7b6ce6c936d234771d2a4103a13850c422':
  Update frame-larger-than limit to 2440 for new clang.

10 years agoam 488deba5: Merge "Reduce allocations in ParallelGC test."
Mathieu Chartier [Thu, 24 Jul 2014 01:41:42 +0000 (01:41 +0000)]
am 488deba5: Merge "Reduce allocations in ParallelGC test."

* commit '488deba5896104cfba15d5fe44ff618c59c6456f':
  Reduce allocations in ParallelGC test.

10 years agoam cfd31c5e: Merge "Use a (somewhat) more documented environment variable."
Nicolas Geoffray [Wed, 23 Jul 2014 23:57:45 +0000 (23:57 +0000)]
am cfd31c5e: Merge "Use a (somewhat) more documented environment variable."

* commit 'cfd31c5e266d1aecc66278fdea46e88e323a181d':
  Use a (somewhat) more documented environment variable.

10 years agoART: Refactor GenSelect, refactor gen_common accordingly
Andreas Gampe [Wed, 16 Jul 2014 06:02:11 +0000 (23:02 -0700)]
ART: Refactor GenSelect, refactor gen_common accordingly

This adds a GenSelect method meant for selection of constants. The
general-purpose GenInstanceof code is refactored to take advantage of
this. This cleans up code and squashes a branch-over on ARM64 to a
cset.

Also add a slow-path for type initialization in GenInstanceof.

Bug: 16241558

(cherry picked from commit 90969af6deb19b1dbe356d62fe68d8f5698d3d8f)

Change-Id: Ie4494858bb8c26d386cf2e628172b81bba911ae5

10 years agoam 75c99e9d: Merge "x86: GenSelect utility update"
Andreas Gampe [Wed, 23 Jul 2014 22:14:28 +0000 (22:14 +0000)]
am 75c99e9d: Merge "x86: GenSelect utility update"

* commit '75c99e9dd8512a44d97d9818a74a69065ad82df0':
  x86: GenSelect utility update

10 years agoART: Throw StackOverflowError in native code
Andreas Gampe [Mon, 14 Jul 2014 23:21:44 +0000 (16:21 -0700)]
ART: Throw StackOverflowError in native code

Initialize stack-overflow errors in native code to be able to reduce
the preserved area size of the stack.

Includes a refactoring away from constexpr in instruction_set.h to allow
for easy changing of the values.

Bug: 16256184

(cherry picked from commit 7ea6f79bbddd69d5db86a8656a31aaaf64ae2582)

Change-Id: I117cc8485f43da5f0a470f0f5e5b3dc3b5a06246

10 years agoresolved conflicts for merge of 38c488bc to lmp-dev-plus-aosp
Mathieu Chartier [Wed, 23 Jul 2014 21:28:26 +0000 (14:28 -0700)]
resolved conflicts for merge of 38c488bc to lmp-dev-plus-aosp

Change-Id: If8fbbd51232fd01a481cb47df426de169c0c830c

10 years agoRecycle mem-maps for collector transitions.
Mathieu Chartier [Wed, 16 Jul 2014 20:28:58 +0000 (13:28 -0700)]
Recycle mem-maps for collector transitions.

We now create spaces when we need them for collector transitions or
homogeneous compaction by recycling mem maps. Change the bump
pointer space size to be as large as the heap capacity instead of
1/2 heap capacity like it used to be. For GSS, bump pointer spaces
are set to 32MB currently.

Changed GSS to have main space == non moving space since we don't
need to copy from the main space.

Fixes GC stress tests 074, 096.
Fixed test 080 oom throw with -Xmx2m for GC stress test, this was
broken since it was allocating a 4 MB array before starting the
OOM process.

Bug: 14059466
Bug: 16406852

(cherry picked from commit b363f666883860d40823d5528df3c98c897f74f4)

Change-Id: I62877cfa24ec944a6f34ffac30334f454a8002fd

10 years agoam 0346b6be: Merge "Fix run-test --trace option if --host is specified after."
Jeff Hao [Wed, 23 Jul 2014 20:47:59 +0000 (20:47 +0000)]
am 0346b6be: Merge "Fix run-test --trace option if --host is specified after."

* commit '0346b6bef939517b45216ee0eff4cf7a0c0667f4':
  Fix run-test --trace option if --host is specified after.

10 years agoam b76cac63: Revert "Revert "Disable adding main and non moving spaces to immune...
Mathieu Chartier [Wed, 23 Jul 2014 20:24:12 +0000 (20:24 +0000)]
am b76cac63: Revert "Revert "Disable adding main and non moving spaces to immune region in GSS""

* commit 'b76cac637691c29daa9c44e493b5bc26346ed116':
  Revert "Revert "Disable adding main and non moving spaces to immune region in GSS""

10 years agoRevert "Revert "Disable adding main and non moving spaces to immune region in GSS""
Mathieu Chartier [Wed, 23 Jul 2014 20:02:30 +0000 (13:02 -0700)]
Revert "Revert "Disable adding main and non moving spaces to immune region in GSS""

This reverts commit f85c2fb317399ab540854cd7551ac47690366543.

10 years agoMerge "Use a (somewhat) more documented environment variable."
Nicolas Geoffray [Wed, 23 Jul 2014 23:49:26 +0000 (23:49 +0000)]
Merge "Use a (somewhat) more documented environment variable."

10 years agoUse a (somewhat) more documented environment variable.
Nicolas Geoffray [Wed, 23 Jul 2014 23:36:48 +0000 (00:36 +0100)]
Use a (somewhat) more documented environment variable.

I believe OUT is not mandatory to define, whereas
ANDROID_PRODUCT_OUT is. Not sure our continuous tests define it.

Change-Id: I7cd23971384df265e59587b49760aba29133a59c

10 years agoMerge "Fix access to long/double stack values from debugger"
Sebastien Hertz [Thu, 24 Jul 2014 07:24:12 +0000 (07:24 +0000)]
Merge "Fix access to long/double stack values from debugger"

10 years agoam cf60db36: Merge "ART: Fix x86_64 instrumentation_exit, also movsd -> movq"
Andreas Gampe [Wed, 23 Jul 2014 19:02:15 +0000 (19:02 +0000)]
am cf60db36: Merge "ART: Fix x86_64 instrumentation_exit, also movsd -> movq"

* commit 'cf60db36f19943242fb14657dd5a452a650d42dc':
  ART: Fix x86_64 instrumentation_exit, also movsd -> movq

10 years agoam 80b3f96e: Merge "Add test-art-*-run-test-###-test-name32/64 test targets."
Andreas Gampe [Wed, 23 Jul 2014 19:02:15 +0000 (19:02 +0000)]
am 80b3f96e: Merge "Add test-art-*-run-test-###-test-name32/64 test targets."

* commit '80b3f96ec1e408f34b8e7b76b14774794fa1abd8':
  Add test-art-*-run-test-###-test-name32/64 test targets.

10 years agoam b37576bb: Merge "ART: Fix erroneous output"
Andreas Gampe [Wed, 23 Jul 2014 19:02:14 +0000 (19:02 +0000)]
am b37576bb: Merge "ART: Fix erroneous output"

* commit 'b37576bbb133593387a0a5b7a03202e380798e64':
  ART: Fix erroneous output

10 years agoresolved conflicts for merge of 525f2f30 to lmp-dev-plus-aosp
Andreas Gampe [Wed, 23 Jul 2014 18:58:02 +0000 (11:58 -0700)]
resolved conflicts for merge of 525f2f30 to lmp-dev-plus-aosp

Change-Id: I74f36b70583f4faf57befc9c6371ffd69e9a7cf8

10 years agoMerge "Fix memory leak in RemoveRememberedSet."
Mathieu Chartier [Thu, 24 Jul 2014 20:47:09 +0000 (20:47 +0000)]
Merge "Fix memory leak in RemoveRememberedSet."

10 years agoFix memory leak in RemoveRememberedSet.
Mathieu Chartier [Thu, 24 Jul 2014 18:11:05 +0000 (11:11 -0700)]
Fix memory leak in RemoveRememberedSet.

RemoveRememberedSet now deletes the remembered set.

Bug: 16532086
Change-Id: I01092931cc20cd0688dd42eed3dde9ad140889b2

10 years agoMerge "Increase limit to 2600 on host clang builds for frame size."
Stephen Hines [Thu, 24 Jul 2014 02:49:36 +0000 (02:49 +0000)]
Merge "Increase limit to 2600 on host clang builds for frame size."

10 years agoIncrease limit to 2600 on host clang builds for frame size.
Stephen Hines [Thu, 24 Jul 2014 02:47:35 +0000 (19:47 -0700)]
Increase limit to 2600 on host clang builds for frame size.

Change-Id: I573e1bcdc7a935145e88077def9c90a5573d2e90

10 years agoMerge "Reduce allocations in ParallelGC test."
Mathieu Chartier [Thu, 24 Jul 2014 01:30:03 +0000 (01:30 +0000)]
Merge "Reduce allocations in ParallelGC test."

10 years agoReduce allocations in ParallelGC test.
Mathieu Chartier [Thu, 24 Jul 2014 00:25:41 +0000 (17:25 -0700)]
Reduce allocations in ParallelGC test.

Fixes GC stress test mode.

Bug: 16406852
Change-Id: I86c8fd7516c3f41075bca00c7d5b4dab2bb7b1d4

10 years agoMerge "Update frame-larger-than limit to 2440 for new clang."
Stephen Hines [Thu, 24 Jul 2014 02:14:06 +0000 (02:14 +0000)]
Merge "Update frame-larger-than limit to 2440 for new clang."

10 years agoUpdate frame-larger-than limit to 2440 for new clang.
Stephen Hines [Thu, 17 Jul 2014 08:49:18 +0000 (01:49 -0700)]
Update frame-larger-than limit to 2440 for new clang.

Bug: 16362912

The latest version of clang is generating larger frames on elf_writer_quick.cc
and dex2oat.cc than we had previously encountered. This change unblocks the
LLVM rebase temporarily.

Change-Id: I20d9f88959b91e0509e58f01c22532720225f44d

10 years agoMerge "x86: GenSelect utility update"
Andreas Gampe [Wed, 23 Jul 2014 22:07:30 +0000 (22:07 +0000)]
Merge "x86: GenSelect utility update"

10 years agoMerge "Fix run-test --trace option if --host is specified after."
Jeff Hao [Wed, 23 Jul 2014 20:41:11 +0000 (20:41 +0000)]
Merge "Fix run-test --trace option if --host is specified after."

10 years agoFix run-test --trace option if --host is specified after.
Jeff Hao [Wed, 23 Jul 2014 18:52:52 +0000 (11:52 -0700)]
Fix run-test --trace option if --host is specified after.

Change-Id: I3911428ba762657c4433ab23e60f1771c9ddb2fe

10 years agoMerge "Fix stale remembered sets error."
Mathieu Chartier [Thu, 24 Jul 2014 17:53:11 +0000 (17:53 +0000)]
Merge "Fix stale remembered sets error."

10 years agoFix stale remembered sets error.
Mathieu Chartier [Thu, 24 Jul 2014 01:45:17 +0000 (18:45 -0700)]
Fix stale remembered sets error.

We were forgetting to remove the remembered set in transition to
background. This resulted in remembered sets being added for
spaces which no longer existed. This finally caused an error when
a new space happened to have the same address as the old space,
resulting in a CHECK failure.

Also tuned the number of ParallelGC to prevent spurrious failures
and removed the ParallelGC from broken tests in the make file.

Bug: 16532086
Bug: 16406852

Change-Id: I00bbcbd7daa03c867732d165be62b72e6c43bce1

10 years agoMerge "ART: Do not attempt to compile a method with too many registers" into lmp-dev
Andreas Gampe [Wed, 23 Jul 2014 22:15:36 +0000 (22:15 +0000)]
Merge "ART: Do not attempt to compile a method with too many registers" into lmp-dev

10 years agoART: Do not attempt to compile a method with too many registers
Andreas Gampe [Fri, 18 Jul 2014 01:04:32 +0000 (18:04 -0700)]
ART: Do not attempt to compile a method with too many registers

The mir_graph has a hard limit on how many ssa registers it can
handle, and will silently fail or fatal out in debug builds when
more SSA registers are necessary. This adds a check in the frontend
that tries to catch some of these cases, and makes the DCHECK a
CHECK to not silently fail.

Bug: 16018097

(cherry picked from commit 0d8ea4661c584fc095129f853d0d72b0fa09cda5)

Change-Id: Iad82178945a8f8c34943cc7573fd73d2b4decade

10 years agoMerge "ART: Check high part of dalvik register pairs on put-wide" into lmp-dev
Andreas Gampe [Wed, 23 Jul 2014 22:13:44 +0000 (22:13 +0000)]
Merge "ART: Check high part of dalvik register pairs on put-wide" into lmp-dev

10 years agoART: Check high part of dalvik register pairs on put-wide
Andreas Gampe [Tue, 22 Jul 2014 05:11:42 +0000 (22:11 -0700)]
ART: Check high part of dalvik register pairs on put-wide

When verifying a put-wide, it is necessary to check the lo and the hi
register for the right type.

Bug: 16018242

(cherry picked from commit 2a593a14e8e0df01a50139e0d48c7be46fb057ef)

Change-Id: I9e661951d592e155e0f281ea959e778d8f4a67ab

10 years agoam f5881ed6: ART: Fix x86_64 instrumentation_exit, also movsd -> movq
Andreas Gampe [Wed, 23 Jul 2014 18:24:24 +0000 (18:24 +0000)]
am f5881ed6: ART: Fix x86_64 instrumentation_exit, also movsd -> movq

* commit 'f5881ed68a05b371e7578966470ff3801b180578':
  ART: Fix x86_64 instrumentation_exit, also movsd -> movq

10 years agoam 2c240f79: Fix x86 instrumentation exit entrypoint and trace size limit.
Jeff Hao [Wed, 23 Jul 2014 18:24:24 +0000 (18:24 +0000)]
am 2c240f79: Fix x86 instrumentation exit entrypoint and trace size limit.

* commit '2c240f7972dc4e6c7cbfb5d4ddcae64720230109':
  Fix x86 instrumentation exit entrypoint and trace size limit.

10 years agoART: Fix x86_64 instrumentation_exit, also movsd -> movq
Andreas Gampe [Wed, 23 Jul 2014 17:05:02 +0000 (10:05 -0700)]
ART: Fix x86_64 instrumentation_exit, also movsd -> movq

Change movd/movsd to movq.

Bug: 16386215

(cherry picked from commit fea29016a79f39ac12a4ba4ebdcbc86800c03427)

Change-Id: Icca71ca2aeeb2917aff46043051d6046f04395d4

10 years agoFix x86 instrumentation exit entrypoint and trace size limit.
Jeff Hao [Wed, 23 Jul 2014 01:38:42 +0000 (18:38 -0700)]
Fix x86 instrumentation exit entrypoint and trace size limit.

The x86 instruction movd only copies a 32-bit value when used with a
memory location. movsd properly copies 64-bits.

Bug: 16386215

(cherry picked from commit cf2e7b0621dfe7fcacd56555dffabab65d1130e7)

Change-Id: I102db8aaa5e8a6b3a88f01e545d1bb51b4f3d5d4

10 years agoam 7dfc30b5: Merge "Use the TMPDIR environment variable for test directory if set."
Ian Rogers [Wed, 23 Jul 2014 15:24:34 +0000 (15:24 +0000)]
am 7dfc30b5: Merge "Use the TMPDIR environment variable for test directory if set."

* commit '7dfc30b591aee167f0a38ab61a90894cc76f2066':
  Use the TMPDIR environment variable for test directory if set.

10 years agoam 4490ff42: Merge "Rewrite topological sort order and improve GVN." into lmp-dev
Vladimir Marko [Wed, 23 Jul 2014 15:18:36 +0000 (15:18 +0000)]
am 4490ff42: Merge "Rewrite topological sort order and improve GVN." into lmp-dev

* commit '4490ff42ecf8a22f4bda9cd49b889d6e4b2683ce':
  Rewrite topological sort order and improve GVN.

10 years agoam 293caab6: Fix null pointer check elimination for catch entries.
Vladimir Marko [Wed, 23 Jul 2014 15:03:59 +0000 (15:03 +0000)]
am 293caab6: Fix null pointer check elimination for catch entries.

* commit '293caab66e9b1e4129843f6bdeb31353bb77ccef':
  Fix null pointer check elimination for catch entries.

10 years agoam 0edcfd64: Merge "Fix implicit stack overflow check on optimizing/x86."
Nicolas Geoffray [Wed, 23 Jul 2014 14:16:01 +0000 (14:16 +0000)]
am 0edcfd64: Merge "Fix implicit stack overflow check on optimizing/x86."

* commit '0edcfd64f5d187b9f571b00c0309be6e209d474e':
  Fix implicit stack overflow check on optimizing/x86.

10 years agoam 8bf67c21: Merge "Rewrite topological sort order and improve GVN."
Vladimir Marko [Wed, 23 Jul 2014 14:15:57 +0000 (14:15 +0000)]
am 8bf67c21: Merge "Rewrite topological sort order and improve GVN."

* commit '8bf67c21c6b5bc6c218cd5ab30fcb715b1aeb446':
  Rewrite topological sort order and improve GVN.

10 years agoam 055fb15e: Merge "Use the correct HOST_ARCH for oat files."
Nicolas Geoffray [Wed, 23 Jul 2014 14:15:56 +0000 (14:15 +0000)]
am 055fb15e: Merge "Use the correct HOST_ARCH for oat files."

* commit '055fb15e980347d7975d8f88c531b752c0f9b316':
  Use the correct HOST_ARCH for oat files.

10 years agoam 7c66c8df: Merge "Fix null pointer check elimination for catch entries."
Vladimir Marko [Wed, 23 Jul 2014 14:15:55 +0000 (14:15 +0000)]
am 7c66c8df: Merge "Fix null pointer check elimination for catch entries."

* commit '7c66c8dffeb299743e6180b36a74018fa563ab44':
  Fix null pointer check elimination for catch entries.

10 years agoam cdd185b8: Merge "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."
Nicolas Geoffray [Wed, 23 Jul 2014 14:01:58 +0000 (14:01 +0000)]
am cdd185b8: Merge "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."

* commit 'cdd185b893d3003236d9b79f3532201b2c5f32ca':
  Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY.

10 years agoFix null pointer check elimination for catch entries.
Vladimir Marko [Fri, 11 Jul 2014 13:44:36 +0000 (14:44 +0100)]
Fix null pointer check elimination for catch entries.

Remove the special treatment of catch blocks for null
pointer check elimination and class initialization check
elimination. In both cases this can help optimizing
previously missed cases. In the null check case, this
avoids incorrect optimization as exposed by the new test.

Bug: 16230771

(cherry picked from 0a810d2eab27cd097ebd09a44f0ce83aa608285b)

Change-Id: I0764f47fa0aacfa89904a82e9528177b3ad67e31

10 years agoam f9d6aede: Use vabs/fabs on arm/arm64 for intrinsic abs().
Vladimir Marko [Wed, 23 Jul 2014 13:05:22 +0000 (13:05 +0000)]
am f9d6aede: Use vabs/fabs on arm/arm64 for intrinsic abs().

* commit 'f9d6aede77c700118e225f8312cd888262b77862':
  Use vabs/fabs on arm/arm64 for intrinsic abs().

10 years agox86: GenSelect utility update
Serguei Katkov [Thu, 17 Jul 2014 07:39:03 +0000 (14:39 +0700)]
x86: GenSelect utility update

The is follow-up https://android-review.googlesource.com/#/c/101396/
to make x86 GenSelectConst32 implementation complete.

Change-Id: I69f318e18093f9a5b00f8f00f0f1c2e4ff7a9ab2
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
10 years agoMerge "Rewrite topological sort order and improve GVN." into lmp-dev
Vladimir Marko [Wed, 23 Jul 2014 15:11:04 +0000 (15:11 +0000)]
Merge "Rewrite topological sort order and improve GVN." into lmp-dev

10 years agoRewrite topological sort order and improve GVN.
Vladimir Marko [Thu, 10 Jul 2014 11:42:52 +0000 (12:42 +0100)]
Rewrite topological sort order and improve GVN.

Rewrite the topological sort order to include a full loop
before the blocks that go after the loop. Add a new iterator
class LoopRepeatingTopologicalSortIterator that differs from
the RepeatingTopologicalSortIterator by repeating only loops
and repeating them early. It returns to the loop head if the
head needs recalculation when we reach the end of the loop.

In GVN, use the new loop-repeating topological sort iterator
and for a loop head merge only the preceding blocks' LVNs
if we're not currently recalculating this loop.

Also fix LocalValueNumbering::InPlaceIntersectMaps() which
was keeping only the last element of the intersection, avoid
some unnecessary processing during LVN merge and add some
missing braces to MIRGraph::InferTypeAndSize().

Bug: 16398693

(cherry picked from 55fff044d3a4f7196098e25bab1dad106d9b54a2)

Change-Id: Id7bcd99c8abed1b7500b9ef723313d4c5fc6f1e8

10 years agoMerge "Rewrite topological sort order and improve GVN."
Vladimir Marko [Wed, 23 Jul 2014 12:12:24 +0000 (12:12 +0000)]
Merge "Rewrite topological sort order and improve GVN."

10 years agoRewrite topological sort order and improve GVN.
Vladimir Marko [Thu, 10 Jul 2014 11:42:52 +0000 (12:42 +0100)]
Rewrite topological sort order and improve GVN.

Rewrite the topological sort order to include a full loop
before the blocks that go after the loop. Add a new iterator
class LoopRepeatingTopologicalSortIterator that differs from
the RepeatingTopologicalSortIterator by repeating only loops
and repeating them early. It returns to the loop head if the
head needs recalculation when we reach the end of the loop.

In GVN, use the new loop-repeating topological sort iterator
and for a loop head merge only the preceding blocks' LVNs
if we're not currently recalculating this loop.

Also fix LocalValueNumbering::InPlaceIntersectMaps() which
was keeping only the last element of the intersection, avoid
some unnecessary processing during LVN merge and add some
missing braces to MIRGraph::InferTypeAndSize().

Bug: 16398693
Change-Id: I4e10d4acb626a5b8a28ec0de106a7b37f9cbca32

10 years agoMerge "Use the correct HOST_ARCH for oat files."
Nicolas Geoffray [Wed, 23 Jul 2014 12:07:12 +0000 (12:07 +0000)]
Merge "Use the correct HOST_ARCH for oat files."

10 years agoUse the correct HOST_ARCH for oat files.
Nicolas Geoffray [Wed, 23 Jul 2014 11:37:10 +0000 (12:37 +0100)]
Use the correct HOST_ARCH for oat files.

This typo explains why test-art-host-oat-optimizing-SignalTest32
would work on a 32bit host build and fail on a 64bit host build:
because dex2oat does not generate the code in the expected path
(x86_64 instead of x86), dalvikvm would re-generate it, with
the default settings (that is with quick compiler), and hence the
test would not fail.

Change-Id: I08b5ec316deb4d669fe76066d33a91fc3ed9e3f9

10 years agoMerge "Fix null pointer check elimination for catch entries."
Vladimir Marko [Wed, 23 Jul 2014 12:05:26 +0000 (12:05 +0000)]
Merge "Fix null pointer check elimination for catch entries."

10 years agoMerge "Fix implicit stack overflow check on optimizing/x86."
Nicolas Geoffray [Wed, 23 Jul 2014 12:26:17 +0000 (12:26 +0000)]
Merge "Fix implicit stack overflow check on optimizing/x86."

10 years agoFix implicit stack overflow check on optimizing/x86.
Nicolas Geoffray [Wed, 23 Jul 2014 11:57:19 +0000 (12:57 +0100)]
Fix implicit stack overflow check on optimizing/x86.

They need to happen before changing ESP, and require a suspend point.

Change-Id: Id41aa9c99714f7ab8591367ea5cb9ca105b17ce8

10 years agoMerge "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."
Nicolas Geoffray [Wed, 23 Jul 2014 09:12:11 +0000 (09:12 +0000)]
Merge "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."

10 years agoRules depend on DEX2OATD, not DEX2OATD_DEPENDENCY.
Nicolas Geoffray [Wed, 23 Jul 2014 08:59:21 +0000 (09:59 +0100)]
Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY.

If dex2oatd changes, we need to re-run .oat/.art file generation.

Change-Id: I43487e024745b22b1681f4ff558bac6fd07d9881

10 years agoam d83d1a7e: Merge "Fix x86 instrumentation exit entrypoint and trace size limit."
Jeff Hao [Wed, 23 Jul 2014 01:56:05 +0000 (01:56 +0000)]
am d83d1a7e: Merge "Fix x86 instrumentation exit entrypoint and trace size limit."

* commit 'd83d1a7edf07c33336935faff918424b23247320':
  Fix x86 instrumentation exit entrypoint and trace size limit.

10 years agoam ab9167bd: Merge "Changed default non-full tests to be prebuild."
Andreas Gampe [Wed, 23 Jul 2014 01:50:17 +0000 (01:50 +0000)]
am ab9167bd: Merge "Changed default non-full tests to be prebuild."

* commit 'ab9167bd054eaa8469a73250e33034b5109a7b6e':
  Changed default non-full tests to be prebuild.

10 years agoam 2ac30da0: (-s ours) Merge "Recycle mem-maps for collector transitions."
Mathieu Chartier [Wed, 23 Jul 2014 01:15:23 +0000 (01:15 +0000)]
am 2ac30da0: (-s ours) Merge "Recycle mem-maps for collector transitions."

* commit '2ac30da089ed9f2a27c177a972f4d67754454637':
  Recycle mem-maps for collector transitions.

10 years agoam 7326ff0a: Merge "Fix build, missing spaces around =/<."
Mingyao Yang [Wed, 23 Jul 2014 00:45:22 +0000 (00:45 +0000)]
am 7326ff0a: Merge "Fix build, missing spaces around =/<."

* commit '7326ff0a5a602ebefde76b2785a0c6c0401e815a':
  Fix build, missing spaces around =/<.

10 years agoam ddc21198: Merge "Put oat test output on stderr."
Ian Rogers [Tue, 22 Jul 2014 22:12:09 +0000 (22:12 +0000)]
am ddc21198: Merge "Put oat test output on stderr."

* commit 'ddc211980aa2f6149905d8d26f67201ac8e400b3':
  Put oat test output on stderr.

10 years agoam c389c97c: Merge "Set vtable in class object to null after linking."
Mingyao Yang [Tue, 22 Jul 2014 22:12:08 +0000 (22:12 +0000)]
am c389c97c: Merge "Set vtable in class object to null after linking."

* commit 'c389c97ca93b73b3cb380cedfe438d153b524225':
  Set vtable in class object to null after linking.

10 years agoam c836fcbb: Merge "Made sync-test actually wait for first thread to start."
Andreas Gampe [Tue, 22 Jul 2014 21:46:29 +0000 (21:46 +0000)]
am c836fcbb: Merge "Made sync-test actually wait for first thread to start."

* commit 'c836fcbb52d99efdd9ed4f5c104aebd0c37cb121':
  Made sync-test actually wait for first thread to start.

10 years agoam f645a02c: Merge "ART: Fix checks for relocation delta"
Andreas Gampe [Tue, 22 Jul 2014 21:15:24 +0000 (21:15 +0000)]
am f645a02c: Merge "ART: Fix checks for relocation delta"

* commit 'f645a02cc669232a33b2c2a3c309ed878615d4a9':
  ART: Fix checks for relocation delta

10 years agoam 306cd217: Merge "ART: Blacklist relocate option in oat tests"
Andreas Gampe [Tue, 22 Jul 2014 21:08:40 +0000 (21:08 +0000)]
am 306cd217: Merge "ART: Blacklist relocate option in oat tests"

* commit '306cd2179fc73c0b187102b7e70abf12cb47debf':
  ART: Blacklist relocate option in oat tests

10 years agoMerge "Recycle mem-maps for collector transitions."
Mathieu Chartier [Wed, 23 Jul 2014 01:01:30 +0000 (01:01 +0000)]
Merge "Recycle mem-maps for collector transitions."

10 years agoRecycle mem-maps for collector transitions.
Mathieu Chartier [Wed, 16 Jul 2014 20:28:58 +0000 (13:28 -0700)]
Recycle mem-maps for collector transitions.

We now create spaces when we need them for collector transitions or
homogeneous compaction by recycling mem maps. Change the bump
pointer space size to be as large as the heap capacity instead of
1/2 heap capacity like it used to be. For GSS, bump pointer spaces
are set to 32MB currently.

Changed GSS to have main space == non moving space since we don't
need to copy from the main space.

Fixes GC stress tests 074, 096.
Fixed test 080 oom throw with -Xmx2m for GC stress test, this was
broken since it was allocating a 4 MB array before starting the
OOM process.

Bug: 14059466
Bug: 16406852
Change-Id: I62877cfa24ec944a6f34ffac30334f454a8002fd

10 years agoFix null pointer check elimination for catch entries.
Vladimir Marko [Fri, 11 Jul 2014 13:44:36 +0000 (14:44 +0100)]
Fix null pointer check elimination for catch entries.

Remove the special treatment of catch blocks for null
pointer check elimination and class initialization check
elimination. In both cases this can help optimizing
previously missed cases. In the null check case, this
avoids incorrect optimization as exposed by the new test.

Bug: 16230771
Change-Id: I834b7a1835d9ca8572f4f8d8516d93913c701ad1

10 years agoam d2d90ecc: Merge "Make unit test tell if a method is a leaf."
Nicolas Geoffray [Tue, 22 Jul 2014 17:19:22 +0000 (17:19 +0000)]
am d2d90ecc: Merge "Make unit test tell if a method is a leaf."

* commit 'd2d90ecc099eee55b2c9b38c921951ff9288b020':
  Make unit test tell if a method is a leaf.

10 years agoMerge "ART: Fix x86_64 instrumentation_exit, also movsd -> movq"
Andreas Gampe [Wed, 23 Jul 2014 18:12:08 +0000 (18:12 +0000)]
Merge "ART: Fix x86_64 instrumentation_exit, also movsd -> movq"

10 years agoART: Fix x86_64 instrumentation_exit, also movsd -> movq
Andreas Gampe [Wed, 23 Jul 2014 17:05:02 +0000 (10:05 -0700)]
ART: Fix x86_64 instrumentation_exit, also movsd -> movq

Change movd/movsd to movq.

Bug: 16386215
Change-Id: Icca71ca2aeeb2917aff46043051d6046f04395d4

10 years agoMerge "Add test-art-*-run-test-###-test-name32/64 test targets."
Andreas Gampe [Wed, 23 Jul 2014 18:07:50 +0000 (18:07 +0000)]
Merge "Add test-art-*-run-test-###-test-name32/64 test targets."

10 years agoAdd test-art-*-run-test-###-test-name32/64 test targets.
Alex Light [Wed, 23 Jul 2014 17:31:34 +0000 (10:31 -0700)]
Add test-art-*-run-test-###-test-name32/64 test targets.

This allows one to run only a single architecture for one of the run-tests.

Change-Id: Icb06c2b36074cbec7f7808a2fcaba97ec5501578

10 years agoMerge "Made sync-test actually wait for first thread to start."
Andreas Gampe [Tue, 22 Jul 2014 21:40:47 +0000 (21:40 +0000)]
Merge "Made sync-test actually wait for first thread to start."