OSDN Git Service
Johnny Qiu [Wed, 4 Jun 2014 07:23:49 +0000 (07:23 +0000)]
Update maximum number of reachable blocks in last step
Change-Id: I58e20d74fafdffd86ab3b7e4a1523b93abaae9a5
Signed-off-by: Johnny Qiu <joqiu@nvidia.com>
Andreas Gampe [Wed, 4 Jun 2014 03:04:27 +0000 (03:04 +0000)]
Merge "ART: Add another proxy test"
Bill Buzbee [Tue, 3 Jun 2014 20:56:27 +0000 (20:56 +0000)]
Merge "Correct another RegStorage::Solo32"
Andreas Gampe [Tue, 3 Jun 2014 20:50:18 +0000 (20:50 +0000)]
Merge "ART: Fix an error in proxy_invoke stub on ARM64"
Mark Mendell [Tue, 3 Jun 2014 20:05:37 +0000 (16:05 -0400)]
Correct another RegStorage::Solo32
It should be RegStorage::FloatSolo32
Change-Id: Iadfc6654254e5a1d117b35cc2d88ceb7057cc30d
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Mathieu Chartier [Tue, 3 Jun 2014 19:18:48 +0000 (19:18 +0000)]
Merge "Modified functions to return pointers where appropriate"
Bill Buzbee [Tue, 3 Jun 2014 19:12:48 +0000 (19:12 +0000)]
Merge "AArch64: split list of opcodes in compiler filter."
buzbee [Tue, 3 Jun 2014 18:28:26 +0000 (18:28 +0000)]
Merge "Quick compiler: reference cleanup"
Matteo Franchin [Thu, 29 May 2014 13:24:10 +0000 (14:24 +0100)]
AArch64: split list of opcodes in compiler filter.
Some of the opcodes that are currently enabled in the compiler
filter are generating assertion failures when using libartd.so.
In this patch, these opcodes are marked as experimental
via #if ... #endif and are disabled. This allows using libartd.so
to run the tests and for development. Further commits will follow
to fix the assertion issues.
Change-Id: I9493fddc281542cb15ced38b262f37f4ef4f0870
buzbee [Sun, 1 Jun 2014 16:33:49 +0000 (09:33 -0700)]
Quick compiler: reference cleanup
For 32-bit targets, object references are 32 bits wide both in
Dalvik virtual registers and in core physical registers. Because of
this, object references and non-floating point values were both
handled as if they had the same register class (kCoreReg).
However, for 64-bit systems, references are 32 bits in Dalvik vregs, but
64 bits in physical registers. Although the same underlying physical
core registers will still be used for object reference and non-float
values, different register class views will be used to represent them.
For example, an object reference in arm64 might be held in x3 at some
point, while the same underlying physical register, w3, would be used
to hold a 32-bit int.
This CL breaks apart the handling of object reference and non-float values
to allow the proper register class (or register view) to be used. A
new register class, kRefReg, is introduced which will map to a 32-bit
core register on 32-bit targets, and 64-bit core registers on 64-bit
targets. From this point on, object references should be allocated
registers in the kRefReg class rather than kCoreReg.
Change-Id: I6166827daa8a0ea3af326940d56a6a14874f5810
Andreas Gampe [Tue, 3 Jun 2014 17:22:20 +0000 (17:22 +0000)]
Merge "x86_64: Fix art_quick_aput_obj"
Nicolas Geoffray [Tue, 3 Jun 2014 11:07:00 +0000 (11:07 +0000)]
Merge "Don't use Dump for printing a bitset in liveness_test."
Nicolas Geoffray [Tue, 3 Jun 2014 10:36:16 +0000 (10:36 +0000)]
Don't use Dump for printing a bitset in liveness_test.
Change-Id: Ib33e975cee838da97a3bebe04176b5ae8b62f9d5
Dmitry Petrochenko [Thu, 29 May 2014 19:14:49 +0000 (02:14 +0700)]
x86_64: Fix art_quick_aput_obj
The ebx register is not scratch for x86_64 and it leads to
its corruption (seen on art/test 201). Replacing ebx by ecx.
Change-Id: I7f5eeba47688ada5afba82a9303fa736f823d77e
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Vladimir Marko [Tue, 3 Jun 2014 10:14:41 +0000 (10:14 +0000)]
Merge "ART: BitVector not calculating number_of_bits correctly"
Andreas Gampe [Tue, 3 Jun 2014 05:50:05 +0000 (22:50 -0700)]
ART: Fix an error in proxy_invoke stub on ARM64
Make sure that d0 is filled with the right value, as the return
from C code is always in x0.
Bug:
15386201
Change-Id: I6c048b3d92272d769f1de3bdc9ce30733b9e1935
Fred Shih [Mon, 2 Jun 2014 18:11:52 +0000 (11:11 -0700)]
Modified functions to return pointers where appropriate
GetStringChars will return a pointer to the underlying char array iff
it is not movable. Otherwise, it will return a copy of the char array.
For consistency, the null terminating character has been removed as the
specification for a jchar strings are not null terminated:
http://developer.android.com/training/articles/perf-jni.html
GetStringCritical will now always return a pointer to the char array.
The char array is pinned and moving gc is disabled until the pointer is
released.
Change-Id: I19c8cbaecc1f3f723d80acec074fb8c5e2d489c3
Ian Rogers [Tue, 3 Jun 2014 00:05:14 +0000 (00:05 +0000)]
am
0f821c00: Merge "Make class status volatile."
* commit '
0f821c00aeca7b6fca789e5613a91aef786b45af':
Make class status volatile.
Ian Rogers [Tue, 3 Jun 2014 00:05:13 +0000 (00:05 +0000)]
am
7a33c4b8: Merge "Fix interpreter entrypoint initialization in the image"
* commit '
7a33c4b8260e2fafc9ca94e51334d4f18c8e4324':
Fix interpreter entrypoint initialization in the image
Ian Rogers [Tue, 3 Jun 2014 00:04:17 +0000 (00:04 +0000)]
Merge "Make class status volatile."
Ian Rogers [Tue, 3 Jun 2014 00:03:39 +0000 (00:03 +0000)]
Merge "Fix interpreter entrypoint initialization in the image"
Sebastien Hertz [Wed, 21 May 2014 13:44:09 +0000 (15:44 +0200)]
Fix interpreter entrypoint initialization in the image
Sets the interpreter_to_interpreter_bridge entrypoint if the method is not
compiled. This avoids the slow path through Quick compiler's world.i
Bumps oat version to force recompilation of image.
Bug:
15098601
Change-Id: I08f7dfce26ecc5ca88bdf21187b2909c0c069596
Ian Rogers [Mon, 2 Jun 2014 21:24:56 +0000 (14:24 -0700)]
Make class status volatile.
Discourage loads and stores from reordering around the status being updated.
Bug:
15347354
Change-Id: Ice805cb834617747c8209e98a142d3e5c7585719
Jean Christophe Beyler [Mon, 2 Jun 2014 18:21:21 +0000 (11:21 -0700)]
ART: BitVector not calculating number_of_bits correctly
The number_of_bits_ field has an unclear intent. Instead, using
storage_size_ * kWordBits when relevant.
Change-Id: I8c13be0d6643de37813fb154296d451f22c298c8
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
Andreas Gampe [Mon, 2 Jun 2014 18:23:43 +0000 (11:23 -0700)]
ART: Add another proxy test
Change-Id: Ie5beda276a40067b7246001720cc5eea2fa7585a
Dave Allison [Mon, 2 Jun 2014 18:09:33 +0000 (18:09 +0000)]
am
502a1975: Merge "Switch on implicit checks and bump oat version to force recompilation"
* commit '
502a1975e146b288356e49a3af82629637da5ece':
Switch on implicit checks and bump oat version to force recompilation
Dave Allison [Mon, 2 Jun 2014 18:06:48 +0000 (18:06 +0000)]
Merge "Switch on implicit checks and bump oat version to force recompilation"
Jeff Hao [Mon, 2 Jun 2014 17:03:20 +0000 (17:03 +0000)]
am
a3209fae: Merge "Added workaround passing empty arg array for proxy invocation."
* commit '
a3209fae94bf7db935b235cc97a4852721accd3e':
Added workaround passing empty arg array for proxy invocation.
Jeff Hao [Mon, 2 Jun 2014 17:01:01 +0000 (17:01 +0000)]
Merge "Added workaround passing empty arg array for proxy invocation."
Jeff Hao [Fri, 30 May 2014 00:29:47 +0000 (17:29 -0700)]
Added workaround passing empty arg array for proxy invocation.
This recreates old Dalvik behavior for older target sdk versions,
but will still pass null for newer ones.
Bug:
13247236
(cherry picked from commit
01d5a146e20660bd06f026c16f19ec080f8fdd7b)
Change-Id: I911889cf559ad8d9f37ea9be3929387c86446851
Ian Rogers [Mon, 2 Jun 2014 16:31:13 +0000 (16:31 +0000)]
am
f6b5378b: Merge "ART: Fix comments and link before MIR to next in Remove method"
* commit '
f6b5378ba182c5c26c556ae34638afc38adef519':
ART: Fix comments and link before MIR to next in Remove method
Ian Rogers [Mon, 2 Jun 2014 16:27:18 +0000 (16:27 +0000)]
Merge "ART: Fix comments and link before MIR to next in Remove method"
Ian Rogers [Mon, 2 Jun 2014 16:12:01 +0000 (16:12 +0000)]
am
042cbb60: Merge "x86: art_quick_instrumentation_entry should not use offset address"
* commit '
042cbb60dc25c16806b02d41dfad040861f727ad':
x86: art_quick_instrumentation_entry should not use offset address
Ian Rogers [Mon, 2 Jun 2014 16:08:34 +0000 (16:08 +0000)]
am
8928d477: Merge "Fix GC race condition in visit roots"
* commit '
8928d4779c5cb4844e213cc483777c745d0749be':
Fix GC race condition in visit roots
Ian Rogers [Mon, 2 Jun 2014 16:07:44 +0000 (16:07 +0000)]
Merge "x86: art_quick_instrumentation_entry should not use offset address"
Ian Rogers [Mon, 2 Jun 2014 16:06:03 +0000 (16:06 +0000)]
Merge "Fix GC race condition in visit roots"
Jean Christophe Beyler [Mon, 2 Jun 2014 16:04:32 +0000 (09:04 -0700)]
ART: Fix comments and link before MIR to next in Remove method
There are some comments without a period at the end and the remove does not
link the MIR before the one we want to remove to the one after.
Change-Id: Ia1263d3191e39b4f8f76ef62b28f7fbb1c6c0403
Signed-off-by: Jean Christophe Beyler jean.christophe.beyler@intel.com
Serguei Katkov [Thu, 22 May 2014 03:07:44 +0000 (10:07 +0700)]
x86: art_quick_instrumentation_entry should not use offset address
art_quick_instrumentation_entry uses offset of the address
instead of full adress but this address is used in ret instruction
which does not expect it.
Change-Id: I9e576037d7adf14a7e9fa8f6d4aba4ee540fcc14
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Serguei Katkov [Mon, 26 May 2014 04:23:39 +0000 (11:23 +0700)]
Fix GC race condition in visit roots
While GC visits roots other code can change the set pending exception
due to lack of synchronization.
Change-Id: If387944ac933a66fe176df066c3a0ea52131cad4
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
buzbee [Sun, 1 Jun 2014 18:41:02 +0000 (18:41 +0000)]
am
e4283be9: Merge "Quick compiler: fix array overrun."
* commit '
e4283be97047a26d3476acd3863dcc386498be17':
Quick compiler: fix array overrun.
buzbee [Sun, 1 Jun 2014 18:37:53 +0000 (18:37 +0000)]
Merge "Quick compiler: fix array overrun."
buzbee [Sat, 31 May 2014 15:59:01 +0000 (08:59 -0700)]
Quick compiler: fix array overrun.
MIRGraph::InlineCalls() was using the MIR opcode to recover
Dalvik instruction flags - something that is only valid for
Dalvik opcodes and not the set of extended MIR opcodes.
This is probably the 3rd or 4th time we've had a bug using
the MIR opcode in situations that are only valid for the Dalvik
opcode subset. I took the opportunity to scan the code for
other cases of this (didn't find any), and did some cleanup while
I was in the neighborhood.
We should probably rework the DalvikOpcode/MirOpcode model whenver we
get around to removing DalvikInstruction from MIR.
Internal bug b/
15352667: out-of-bound access in mir_optimization.cc
Change-Id: I75f06780468880892151e3cdd313e14bfbbaa489
Andreas Gampe [Fri, 30 May 2014 22:13:30 +0000 (22:13 +0000)]
am
fbc3e0ba: Merge "ART: Add thread safety test for LargeObjectSpace"
* commit '
fbc3e0baa16f265a5dbc99a38383b4dbc41b04a8':
ART: Add thread safety test for LargeObjectSpace
Andreas Gampe [Fri, 30 May 2014 22:10:57 +0000 (22:10 +0000)]
Merge "ART: Add thread safety test for LargeObjectSpace"
Andreas Gampe [Fri, 30 May 2014 21:42:59 +0000 (14:42 -0700)]
ART: Add thread safety test for LargeObjectSpace
Add a test that just calls Alloc and Free repeatedly with multiple
threads, checking whether things are really race-free.
Change-Id: I39ea9e7449e3354b49c3aa11c27fcfeb07acff9f
Bill Buzbee [Fri, 30 May 2014 21:54:07 +0000 (21:54 +0000)]
am
b20c373e: Merge "AArch64: Enable extended MIR"
* commit '
b20c373e45200102eaf2d4aac35d366067e0074b':
AArch64: Enable extended MIR
Bill Buzbee [Fri, 30 May 2014 21:49:34 +0000 (21:49 +0000)]
Merge "AArch64: Enable extended MIR"
Mathieu Chartier [Fri, 30 May 2014 21:19:29 +0000 (21:19 +0000)]
am
b379e8d1: Merge "Compaction cleanup for FindArrayClass."
* commit '
b379e8d107b9131d9b6c7b48aea01f9866e4047b':
Compaction cleanup for FindArrayClass.
Mathieu Chartier [Fri, 30 May 2014 21:15:32 +0000 (21:15 +0000)]
Merge "Compaction cleanup for FindArrayClass."
Mathieu Chartier [Thu, 29 May 2014 21:31:33 +0000 (14:31 -0700)]
Compaction cleanup for FindArrayClass.
We now pass double pointer in to signify that it can cause thread
suspension, this double pointer gets wrapped by a handle if don't
find the array class in the cache.
Change-Id: I43436b6c35597c7252b65d1180baddb5ac4caabb
Ian Rogers [Fri, 30 May 2014 20:27:39 +0000 (20:27 +0000)]
am
e4e04bbd: Merge "Support disassembly of 16-bit immediates"
* commit '
e4e04bbd86d1131b9f380a52a46b1a3b83335d5f':
Support disassembly of 16-bit immediates
Mathieu Chartier [Fri, 30 May 2014 20:27:38 +0000 (20:27 +0000)]
am
afa8e909: Merge "Fix race condition in MemMap::MapAnonymous."
* commit '
afa8e909b7fbf53cb45573c458c031d3174069c9':
Fix race condition in MemMap::MapAnonymous.
Ian Rogers [Fri, 30 May 2014 20:26:12 +0000 (20:26 +0000)]
Merge "Support disassembly of 16-bit immediates"
Mathieu Chartier [Fri, 30 May 2014 20:24:53 +0000 (20:24 +0000)]
Merge "Fix race condition in MemMap::MapAnonymous."
Mathieu Chartier [Fri, 30 May 2014 20:02:46 +0000 (13:02 -0700)]
Fix race condition in MemMap::MapAnonymous.
Previously we were using MAP_FIXED which introduced a serious race
condition if MAP_32BIT was set since it would possibly overwrite
an existing map at the address which we determined was free with
msync. There was a window of time after we had msynced a page where
another thread could map something at that page. The new method
avoids using MAP_FIXED and unmaps allocations which succeed but
aren't in the low 4GB when MAP_32BIT is set.
Bug:
15338094
Bug:
14974497
Change-Id: I57f00baf4143e9fa17fb1d4c2be04b30705a2bfd
Mark Mendell [Fri, 30 May 2014 19:05:09 +0000 (15:05 -0400)]
Support disassembly of 16-bit immediates
Change-Id: I66f5ce93077241204311e52c547599f5287bae04
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Ian Rogers [Fri, 30 May 2014 19:56:36 +0000 (19:56 +0000)]
am
b413cd79: Merge "Don\'t report down-calls as unhandled exceptions."
* commit '
b413cd79c46b7c48ac763cb8152a55a4ed60fe9f':
Don't report down-calls as unhandled exceptions.
Ian Rogers [Fri, 30 May 2014 19:53:48 +0000 (19:53 +0000)]
Merge "Don't report down-calls as unhandled exceptions."
buzbee [Fri, 30 May 2014 19:50:35 +0000 (19:50 +0000)]
am
22460ecb: Merge "Quick compiler: Method* as a reference"
* commit '
22460ecbaae7e489a3bc17a2adb2e7e9d0028f9c':
Quick compiler: Method* as a reference
buzbee [Fri, 30 May 2014 19:48:41 +0000 (19:48 +0000)]
Merge "Quick compiler: Method* as a reference"
Ian Rogers [Fri, 30 May 2014 04:31:50 +0000 (21:31 -0700)]
Don't report down-calls as unhandled exceptions.
Bug:
15310540
Also, narrow scope of catch/deoptimize stack visitors that are specific to
quick exception delivery.
Change-Id: Ib13a006ce1347acb93a36b0186550d4c3ec2034b
Dave Allison [Fri, 30 May 2014 18:25:06 +0000 (11:25 -0700)]
Switch on implicit checks and bump oat version to force recompilation
This switches on the compiler's implicit null pointer and stack
overflow checks. These use signals
Change-Id: I7b536784bbca5f07e30379881a1eea6ab4c258ac
Sebastien Hertz [Fri, 30 May 2014 18:17:40 +0000 (18:17 +0000)]
am
c24234e9: Merge "Another workaround for stack overflow issue with clang"
* commit '
c24234e9d6fea3d6d5451aa4fa14ca0c6e63f8bd':
Another workaround for stack overflow issue with clang
Sebastien Hertz [Fri, 30 May 2014 18:14:35 +0000 (18:14 +0000)]
Merge "Another workaround for stack overflow issue with clang"
buzbee [Fri, 30 May 2014 16:54:57 +0000 (16:54 +0000)]
am
3326027d: Merge "Quick compiler: x86_64 workaround"
* commit '
3326027d2cc52463db3786a860cf238e8feb349e':
Quick compiler: x86_64 workaround
buzbee [Fri, 30 May 2014 16:52:12 +0000 (16:52 +0000)]
Merge "Quick compiler: x86_64 workaround"
Andreas Gampe [Fri, 30 May 2014 16:47:47 +0000 (16:47 +0000)]
am
b7f02280: Merge "ART: Use StackReference in Quick Stack Frame"
* commit '
b7f02280f7f56ae94fe7f01e161be0b725b6e4a9':
ART: Use StackReference in Quick Stack Frame
Mathieu Chartier [Fri, 30 May 2014 16:47:46 +0000 (16:47 +0000)]
am
ac70051a: Merge "Revert "Revert "Clean up image writer patching."""
* commit '
ac70051a6f97025b8a93390b2b5a62e491fc77ca':
Revert "Revert "Clean up image writer patching.""
Mathieu Chartier [Fri, 30 May 2014 16:47:46 +0000 (16:47 +0000)]
am
72fc6356: Merge "Revert "Revert "Add support for relative patching to quick offsets."""
* commit '
72fc63563661b4b954acd5962ec3ae30b7666569':
Revert "Revert "Add support for relative patching to quick offsets.""
Andreas Gampe [Fri, 30 May 2014 16:46:04 +0000 (16:46 +0000)]
Merge "ART: Use StackReference in Quick Stack Frame"
Mathieu Chartier [Fri, 30 May 2014 16:45:04 +0000 (16:45 +0000)]
Merge "Revert "Revert "Clean up image writer patching."""
Mathieu Chartier [Fri, 30 May 2014 16:44:54 +0000 (16:44 +0000)]
Merge "Revert "Revert "Add support for relative patching to quick offsets."""
Mathieu Chartier [Fri, 30 May 2014 16:44:47 +0000 (16:44 +0000)]
Revert "Revert "Clean up image writer patching.""
This reverts commit
fb241b6e93f8b54122b978ad0df23a9e514eef0f.
Change-Id: I99da82fd549bcdc3c2fdfe496147897335c50b8e
Mathieu Chartier [Fri, 30 May 2014 16:44:41 +0000 (16:44 +0000)]
Revert "Revert "Add support for relative patching to quick offsets.""
This reverts commit
3e2e99484043aa25b8ed41509ac1b3ccd7d6a959.
Change-Id: Ifbe604330cd3a1dd0a8afa7c500868e2fd0fc500
Mathieu Chartier [Fri, 30 May 2014 16:36:34 +0000 (16:36 +0000)]
am
6a7f45ee: Merge "Revert "Add support for relative patching to quick offsets.""
* commit '
6a7f45ee5401d3d0a5af8ce68bc3b22ae6d85555':
Revert "Add support for relative patching to quick offsets."
Mathieu Chartier [Fri, 30 May 2014 16:36:34 +0000 (16:36 +0000)]
am
31273d0c: Merge "Revert "Clean up image writer patching.""
* commit '
31273d0c1e3c29498cc2360584b8935bf35f4376':
Revert "Clean up image writer patching."
Mathieu Chartier [Fri, 30 May 2014 16:33:10 +0000 (16:33 +0000)]
am
5e5af81e: Merge "Change GetFreeMemory to use the growth limit."
* commit '
5e5af81e97b602c7ccb71b6145a9637c944954a5':
Change GetFreeMemory to use the growth limit.
Mathieu Chartier [Fri, 30 May 2014 16:32:42 +0000 (16:32 +0000)]
Merge "Revert "Add support for relative patching to quick offsets.""
Mathieu Chartier [Fri, 30 May 2014 16:32:31 +0000 (16:32 +0000)]
Revert "Add support for relative patching to quick offsets."
This reverts commit
57d27334bcb9ea95c969be70d8d93eb1a9c72b41.
Change-Id: I5df09ee342c337291388a48e4975a6bf5c1f9944
Mathieu Chartier [Fri, 30 May 2014 16:32:12 +0000 (16:32 +0000)]
Merge "Revert "Clean up image writer patching.""
Mathieu Chartier [Fri, 30 May 2014 16:31:49 +0000 (16:31 +0000)]
Revert "Clean up image writer patching."
This reverts commit
fc3b871ca37593561e3b67006771710bf4d174ea.
Change-Id: I4d1250f3adcd17fcd1b63496816e098db4d5be3c
Mathieu Chartier [Fri, 30 May 2014 16:30:19 +0000 (16:30 +0000)]
Merge "Change GetFreeMemory to use the growth limit."
Narayan Kamath [Fri, 30 May 2014 11:11:52 +0000 (11:11 +0000)]
Narayan Kamath [Fri, 30 May 2014 11:08:38 +0000 (11:08 +0000)]
Merge "Fix build."
Narayan Kamath [Fri, 30 May 2014 10:58:09 +0000 (11:58 +0100)]
Fix build.
Lint error due to a wrong #include guard.
Change-Id: I3b5d56c412580ec14f5c09b859a1bd6f9eb667ee
Vladimir Marko [Fri, 30 May 2014 10:37:52 +0000 (10:37 +0000)]
am
b827c44f: Merge "ART: Setting up cleanup"
* commit '
b827c44f39f66fce600408f82988d6e154627ba7':
ART: Setting up cleanup
Vladimir Marko [Fri, 30 May 2014 10:35:30 +0000 (10:35 +0000)]
Merge "ART: Setting up cleanup"
Serban Constantinescu [Wed, 28 May 2014 12:21:45 +0000 (13:21 +0100)]
AArch64: Enable extended MIR
This patch enables all the extended MIR opcodes for ARM64. Please note
that currently the compiler will never generate these opcodes since the
BB optimisations are not enabled.
Change-Id: Ia712b071f62301db868297d37567795128b5bf2e
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
Jean Christophe Beyler [Wed, 7 May 2014 03:36:55 +0000 (20:36 -0700)]
ART: Setting up cleanup
- Moved code around to actually have the clean-up code in a PassDriver format.
This allows us to better control what is being called after an optimization
It also allows the use of a centralized pass system for both optimizations
and cleanup.
Change-Id: I9d21e9bb9ee663739722f440d82adf04f73e380c
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>
Andreas Gampe [Thu, 29 May 2014 05:43:01 +0000 (22:43 -0700)]
ART: Use StackReference in Quick Stack Frame
The method reference at the bottom of a quick frame is a stack
reference and not a native pointer. This is important for 64b
architectures, where the notions do not coincide.
Change key methods to have StackReference<mirror::ArtMethod>*
parameter instead of mirror::ArtMethod**. Make changes to
invoke stubs for 64b archs, change the frame setup for JNI code
(both generic JNI and compilers), tie up loose ends.
Tested on x86 and x86-64 with host tests. On x86-64, tests succeed
with jni compiler activated. x86-64 QCG was not tested.
Tested on ARM32 with device tests.
Fix ARM64 not saving x19 (used for wSUSPEND) on upcalls.
Tested on ARM64 in interpreter-only + generic-jni mode.
Fix ARM64 JNI Compiler to work with the CL.
Tested on ARM64 in interpreter-only + jni compiler.
Change-Id: I77931a0cbadd04d163b3eb8d6f6a6f8740578f13
Brian Carlstrom [Fri, 30 May 2014 00:59:48 +0000 (00:59 +0000)]
am
29b53d3d: Merge "Moved a BufferedOutputStream onto the heap to reduce stack usage."
* commit '
29b53d3d715b1ec19349e8cbf7c5e4ff529bd5fe':
Moved a BufferedOutputStream onto the heap to reduce stack usage.
Brian Carlstrom [Fri, 30 May 2014 00:57:10 +0000 (00:57 +0000)]
Merge "Moved a BufferedOutputStream onto the heap to reduce stack usage."
Alex Light [Thu, 29 May 2014 22:42:47 +0000 (15:42 -0700)]
Moved a BufferedOutputStream onto the heap to reduce stack usage.
Bug:
15278350
Change-Id: I6aa7cf3979453e555686610e90520b762b812f8c
Mathieu Chartier [Fri, 30 May 2014 00:09:51 +0000 (17:09 -0700)]
Change GetFreeMemory to use the growth limit.
This makes more sense since it is what the allocator uses. Also fixed
somewhere where we were not properly passing in whether or not it was
a large object allocation.
Bug:
15327879
Change-Id: Ieab7af5427f5cdc2760390186b67e2c96d4bafa7
Ian Rogers [Fri, 30 May 2014 00:10:42 +0000 (00:10 +0000)]
am
e4707ae7: Merge "Ignore catch blocks whose type can\'t be resolved."
* commit '
e4707ae7985a4f855b97f3b20d99fb55368f44ad':
Ignore catch blocks whose type can't be resolved.
Ian Rogers [Fri, 30 May 2014 00:05:29 +0000 (00:05 +0000)]
Merge "Ignore catch blocks whose type can't be resolved."
Ian Rogers [Thu, 29 May 2014 23:55:06 +0000 (16:55 -0700)]
Ignore catch blocks whose type can't be resolved.
Reverts change
72b3e430d880ef57eaa6a34a0822165994052202 but keeps unit test and
missing delete that would fail assertions on long jump context recycling.
Change-Id: I926755e8b831b208aa7e1ce46421bef3793a1441
Mathieu Chartier [Thu, 29 May 2014 23:35:03 +0000 (23:35 +0000)]
am
2b2c0cf9: Merge "Clean up image writer patching."
* commit '
2b2c0cf947a4b228c9f378a3b4f281eaa2bff19a':
Clean up image writer patching.
Mathieu Chartier [Thu, 29 May 2014 23:31:40 +0000 (23:31 +0000)]
Merge "Clean up image writer patching."
buzbee [Thu, 29 May 2014 23:03:42 +0000 (16:03 -0700)]
Quick compiler: x86_64 workaround
A recent CL changed the allocation of temp registers destined to
hold a reference such that on 64-bit systems a 64-bit register
would be allocated. However, for bring-up purposes, the x86_64
backend wants the ability to continue holding long values in a
register pair.
Change-Id: I25d9f755fafbe96144226677f85c6d5cad1ffa76