OSDN Git Service
Andreas Gampe [Fri, 25 Jul 2014 04:15:50 +0000 (04:15 +0000)]
am
e751e9a4: am
4857b868: Merge "Integrate ART with NativeBridge interfaces"
* commit '
e751e9a47a586c112dc606ea233f3307cb343618':
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
Mathieu Chartier [Thu, 24 Jul 2014 23:51:35 +0000 (23:51 +0000)]
am
32de2140: am
c0dcf291: Fix stale remembered sets error.
* commit '
32de214054f510286a277bb8c8a375a1178d13f9':
Fix stale remembered sets error.
Sebastien Hertz [Thu, 24 Jul 2014 23:51:28 +0000 (23:51 +0000)]
am
56aa8922: am
5dc158e9: Fix access to long/double stack values from debugger
* commit '
56aa89229481bbabd243867b07a6b74ff072d7af':
Fix access to long/double stack values from debugger
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.
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
Mathieu Chartier [Thu, 24 Jul 2014 21:00:08 +0000 (21:00 +0000)]
am
338eb238: am
54f3c041: Merge "Fix memory leak in RemoveRememberedSet."
* commit '
338eb2386f251d949fdf54c9cde130b2496e6319':
Fix memory leak in RemoveRememberedSet.
Andreas Gampe [Fri, 25 Jul 2014 04:01:32 +0000 (04:01 +0000)]
Merge "Integrate 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
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.
Andreas Gampe [Thu, 24 Jul 2014 19:48:27 +0000 (19:48 +0000)]
am
fcc91b80: resolved conflicts for merge of
bebee4fd to lmp-dev-plus-aosp
* commit '
fcc91b80ae77827726ab93d237f794f87b97a2e6':
ART: Refactor GenSelect, refactor gen_common accordingly
Andreas Gampe [Thu, 24 Jul 2014 19:38:06 +0000 (12:38 -0700)]
resolved conflicts for merge of
bebee4fd to lmp-dev-plus-aosp
Andreas Gampe [Thu, 24 Jul 2014 19:26:54 +0000 (19:26 +0000)]
am
b8eb3ad3: am
d68168e9: Merge "ART: Do not attempt to compile a method with too many registers" into lmp-dev
* commit '
b8eb3ad343be4fbef8b90225f52f4776303289be':
ART: Do not attempt to compile a method with too many registers
Andreas Gampe [Thu, 24 Jul 2014 19:26:53 +0000 (19:26 +0000)]
am
337dfe0d: am
1f710373: Merge "ART: Check high part of dalvik register pairs on put-wide" into lmp-dev
* commit '
337dfe0db204e7cfc6743046c7c11e08e3e3de32':
ART: Check high part of dalvik register pairs on put-wide
Andreas Gampe [Thu, 24 Jul 2014 19:26:52 +0000 (19:26 +0000)]
am
15b707b6: am
0f45f22e: (-s ours) ART: Throw StackOverflowError in native code
* commit '
15b707b6d627976f34626d11da51c25046a04612':
ART: Throw StackOverflowError in native code
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
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
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
Mathieu Chartier [Thu, 24 Jul 2014 18:32:20 +0000 (18:32 +0000)]
am
204e57c4: resolved conflicts for merge of
7521704f to lmp-dev-plus-aosp
* commit '
204e57c43824413d6e15fdf05c490ed4d869d44e':
Fix stale remembered sets error.
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
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)
Sebastien Hertz [Thu, 24 Jul 2014 13:06:00 +0000 (13:06 +0000)]
am
797517aa: am
ca928ba8: Merge "Fix access to long/double stack values from debugger"
* commit '
797517aa6226f5f34ea70d0963e703ce888b5726':
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
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
Stephen Hines [Thu, 24 Jul 2014 03:00:02 +0000 (03:00 +0000)]
am
118dbba9: am
3017527b: Merge "Increase limit to 2600 on host clang builds for frame size."
* commit '
118dbba980cb2cf9dba5bad7d5ef32b6bba12abe':
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.
Stephen Hines [Thu, 24 Jul 2014 02:29:33 +0000 (02:29 +0000)]
am
50985c8f: am
7f9c8f7b: Merge "Update frame-larger-than limit to 2440 for new clang."
* commit '
50985c8fe8e390e665d2207e01631f5d47e2fa14':
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.
Mathieu Chartier [Thu, 24 Jul 2014 01:46:12 +0000 (01:46 +0000)]
am
8eb38942: am
488deba5: Merge "Reduce allocations in ParallelGC test."
* commit '
8eb3894224dccaf59ef203d0b5ad15484fa6dabc':
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.
Nicolas Geoffray [Thu, 24 Jul 2014 00:01:57 +0000 (00:01 +0000)]
am
26ff0b18: am
cfd31c5e: Merge "Use a (somewhat) more documented environment variable."
* commit '
26ff0b189ee05c8aaa81e850335132ccf4bfd466':
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.
Andreas Gampe [Wed, 23 Jul 2014 22:20:23 +0000 (22:20 +0000)]
am
2bdbeece: am
75c99e9d: Merge "x86: GenSelect utility update"
* commit '
2bdbeece0ab3fdaa6cfcd34ba9a1e3aa44d7f3ab':
x86: GenSelect utility update
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
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
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
Mathieu Chartier [Wed, 23 Jul 2014 21:43:45 +0000 (21:43 +0000)]
am
b94ed50a: resolved conflicts for merge of
38c488bc to lmp-dev-plus-aosp
* commit '
b94ed50a53ecbfbd360a2771a22ec91283b9a5f3':
Recycle mem-maps for collector transitions.
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
Jeff Hao [Wed, 23 Jul 2014 20:51:27 +0000 (20:51 +0000)]
am
f4afc70f: am
0346b6be: Merge "Fix run-test --trace option if --host is specified after."
* commit '
f4afc70f8b31867587e12772465bb09489c3cebb':
Fix run-test --trace option if --host is specified after.
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
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.
Mathieu Chartier [Wed, 23 Jul 2014 20:28:14 +0000 (20:28 +0000)]
am
8060f68b: am
b76cac63: Revert "Revert "Disable adding main and non moving spaces to immune region in GSS""
* commit '
8060f68b0eb74acb0b89a0a32373fd1d66a9fc7f':
Revert "Revert "Disable adding main and non moving spaces to immune region in GSS""
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""
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.
Nicolas Geoffray [Wed, 23 Jul 2014 23:49:26 +0000 (23:49 +0000)]
Merge "Use 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
Sebastien Hertz [Thu, 24 Jul 2014 07:24:12 +0000 (07:24 +0000)]
Merge "Fix access to long/double stack values from debugger"
Andreas Gampe [Wed, 23 Jul 2014 19:08:24 +0000 (19:08 +0000)]
am
6590cb04: am
cf60db36: Merge "ART: Fix x86_64 instrumentation_exit, also movsd -> movq"
* commit '
6590cb04e7e889756f913bf4fdddce112ba471ab':
ART: Fix x86_64 instrumentation_exit, also movsd -> movq
Andreas Gampe [Wed, 23 Jul 2014 19:08:23 +0000 (19:08 +0000)]
am
40f53491: am
80b3f96e: Merge "Add test-art-*-run-test-###-test-name32/64 test targets."
* commit '
40f53491b67513fba358c685757ba5bcd846a4f7':
Add test-art-*-run-test-###-test-name32/64 test targets.
Andreas Gampe [Wed, 23 Jul 2014 19:08:23 +0000 (19:08 +0000)]
am
e1603a5f: am
b37576bb: Merge "ART: Fix erroneous output"
* commit '
e1603a5fec42cfc92b314e31a3abc05a7c48176a':
ART: Fix erroneous output
Andreas Gampe [Wed, 23 Jul 2014 19:04:34 +0000 (19:04 +0000)]
am
9871afaf: resolved conflicts for merge of
525f2f30 to lmp-dev-plus-aosp
* commit '
9871afafd29015856be3da4920809e77e1a1321b':
ART: Make run tests out of oat tests
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
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.
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
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
Mathieu Chartier [Thu, 24 Jul 2014 20:47:09 +0000 (20:47 +0000)]
Merge "Fix 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
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."
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
Mathieu Chartier [Thu, 24 Jul 2014 01:30:03 +0000 (01:30 +0000)]
Merge "Reduce 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
Stephen Hines [Thu, 24 Jul 2014 02:14:06 +0000 (02:14 +0000)]
Merge "Update 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
Andreas Gampe [Wed, 23 Jul 2014 22:07:30 +0000 (22:07 +0000)]
Merge "x86: GenSelect utility update"
Jeff Hao [Wed, 23 Jul 2014 20:41:11 +0000 (20:41 +0000)]
Merge "Fix 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
Mathieu Chartier [Thu, 24 Jul 2014 17:53:11 +0000 (17:53 +0000)]
Merge "Fix 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
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
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
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
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
Andreas Gampe [Wed, 23 Jul 2014 18:27:52 +0000 (18:27 +0000)]
am
0ebe2f82: am
f5881ed6: ART: Fix x86_64 instrumentation_exit, also movsd -> movq
* commit '
0ebe2f82849766ad0130bcc81ff906a1905b175e':
ART: Fix x86_64 instrumentation_exit, also movsd -> movq
Jeff Hao [Wed, 23 Jul 2014 18:27:52 +0000 (18:27 +0000)]
am
80a98c06: am
2c240f79: Fix x86 instrumentation exit entrypoint and trace size limit.
* commit '
80a98c068878e4a4301bdcb2677b07acd1a0558b':
Fix x86 instrumentation exit entrypoint and trace size limit.
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
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.
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
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
Ian Rogers [Wed, 23 Jul 2014 15:27:44 +0000 (15:27 +0000)]
am
a7dfd3c4: am
7dfc30b5: Merge "Use the TMPDIR environment variable for test directory if set."
* commit '
a7dfd3c4647b98d7fa792c39fa3f5fa2d0835ef2':
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.
Vladimir Marko [Wed, 23 Jul 2014 15:21:58 +0000 (15:21 +0000)]
am
51b24bf9: am
4490ff42: Merge "Rewrite topological sort order and improve GVN." into lmp-dev
* commit '
51b24bf94b452e6e39b303fc6597423721ef31ba':
Rewrite topological sort order and improve GVN.
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.
Vladimir Marko [Wed, 23 Jul 2014 15:07:25 +0000 (15:07 +0000)]
am
20098526: am
293caab6: Fix null pointer check elimination for catch entries.
* commit '
200985267b05292aa2799047bc1fd97989fb607a':
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.
Nicolas Geoffray [Wed, 23 Jul 2014 14:20:23 +0000 (14:20 +0000)]
am
4de0d3fe: am
0edcfd64: Merge "Fix implicit stack overflow check on optimizing/x86."
* commit '
4de0d3fe0d899f858c376b3544a3dd70d005521e':
Fix implicit stack overflow check on optimizing/x86.
Vladimir Marko [Wed, 23 Jul 2014 14:20:22 +0000 (14:20 +0000)]
am
93fcbaab: am
8bf67c21: Merge "Rewrite topological sort order and improve GVN."
* commit '
93fcbaab1adec6b3ce79ae9c06474006ad2adc46':
Rewrite topological sort order and improve GVN.
Nicolas Geoffray [Wed, 23 Jul 2014 14:20:21 +0000 (14:20 +0000)]
am
c518fae8: am
055fb15e: Merge "Use the correct HOST_ARCH for oat files."
* commit '
c518fae8ba05ae6dc91a2e51af744500800ba7e2':
Use the correct HOST_ARCH for oat files.
Vladimir Marko [Wed, 23 Jul 2014 14:20:20 +0000 (14:20 +0000)]
am
31d09c74: am
7c66c8df: Merge "Fix null pointer check elimination for catch entries."
* commit '
31d09c74caef1feed8d3c4d8931889d4fd07f8bc':
Fix null pointer check elimination for catch entries.
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.
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.
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.
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.
Nicolas Geoffray [Wed, 23 Jul 2014 14:05:35 +0000 (14:05 +0000)]
am
f75cf7de: am
cdd185b8: Merge "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."
* commit '
f75cf7debc30335981772c77f74edf3e7180500d':
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.
Vladimir Marko [Wed, 23 Jul 2014 13:26:54 +0000 (13:26 +0000)]
am
8faf95fd: am
f9d6aede: Use vabs/fabs on arm/arm64 for intrinsic abs().
* commit '
8faf95fd835db35ed8584de29bc095069b3251db':
Use vabs/fabs on arm/arm64 for intrinsic abs().
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
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().
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>
Vladimir Marko [Wed, 23 Jul 2014 15:11:04 +0000 (15:11 +0000)]
Merge "Rewrite topological sort order and improve GVN." into lmp-dev
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