OSDN Git Service
Andreas Gampe [Wed, 25 Feb 2015 00:26:04 +0000 (00:26 +0000)]
Merge "ART: Add -Wunused"
Andreas Gampe [Fri, 20 Feb 2015 02:21:24 +0000 (18:21 -0800)]
ART: Add -Wunused
Until the global CFLAGS are fixed, add Wunused. Fix declarations
in the optimizing compiler.
Change-Id: Ic4553f08e809dc54f3d82af57ac592622c98e000
Sebastien Hertz [Tue, 24 Feb 2015 17:47:38 +0000 (17:47 +0000)]
Merge "JDWP: assert no pending exception when using JNI"
David Brazdil [Tue, 24 Feb 2015 17:27:17 +0000 (17:27 +0000)]
Merge "ART: Disable libcore crypto test failing on target"
David Brazdil [Tue, 24 Feb 2015 17:01:19 +0000 (17:01 +0000)]
ART: Disable libcore crypto test failing on target
Another test failing due to missing loop network device on hammerhead
and volantis bots. We disable it until the device configuration issue
is fixed.
Change-Id: I5b4610d706a8e4bdf178764f64f2d4359a83682d
Sebastien Hertz [Wed, 29 Oct 2014 11:06:51 +0000 (12:06 +0100)]
JDWP: assert no pending exception when using JNI
Checks there is no pending exception when creating new JDWP ids using
JNI routines. We can create JDWP ids when executing code and report
an event like a breakpoint.
Bug:
17491155
Change-Id: I4e5851bf2261510b7776a709a2388e7ff586a77c
Nicolas Geoffray [Tue, 24 Feb 2015 16:26:54 +0000 (16:26 +0000)]
Merge "not-int can also take non-int (byte and short) instructions."
Andreas Gampe [Tue, 24 Feb 2015 16:07:56 +0000 (16:07 +0000)]
Merge "ART: Fix run-test 118"
Andreas Gampe [Tue, 24 Feb 2015 16:06:34 +0000 (08:06 -0800)]
ART: Fix run-test 118
Need to strip error logging for no-prebuild config.
Change-Id: I870bbbf3b6c7e92996e40e45b1bfa58c7e80f709
Nicolas Geoffray [Tue, 24 Feb 2015 16:02:06 +0000 (16:02 +0000)]
not-int can also take non-int (byte and short) instructions.
So we should use the result-type instead if the input type
for knowning what instruction to use.
Bug:
19454010
Change-Id: I88782ad27ae8c8e1b7868afede5057d26f14685a
David Brazdil [Tue, 24 Feb 2015 15:43:18 +0000 (15:43 +0000)]
Merge "ART: Enable more libcore tests (crypto)"
Nicolas Geoffray [Tue, 24 Feb 2015 15:08:36 +0000 (15:08 +0000)]
Merge "Fix inlining in the presence of multiple returns."
Nicolas Geoffray [Tue, 24 Feb 2015 13:35:38 +0000 (13:35 +0000)]
Fix inlining in the presence of multiple returns.
One return could actually return a phi, so doing a phi check for
knowing if the result phi was already created was bogus.
Bug:
19454010
Change-Id: Iee703a2d1071ae263092354465eda368e5d6770d
David Brazdil [Tue, 24 Feb 2015 14:17:32 +0000 (14:17 +0000)]
Merge "ART: Disable one more libcore test failing on hammerhead"
David Brazdil [Tue, 24 Feb 2015 14:13:05 +0000 (14:13 +0000)]
ART: Disable one more libcore test failing on hammerhead
One more test from the harmony package fails due to the locale issue
on hammerhead. This patch disables it.
Change-Id: I1f3941bfcc20d5b2e23fe5ae963676138eecccb8
David Brazdil [Tue, 24 Feb 2015 13:33:01 +0000 (13:33 +0000)]
ART: Enable more libcore tests (crypto)
This patch enables additional libcore tests run by the ART buildbots.
These are tests from the org.apache.harmony.crypto and
libcore.javax.crypto packages and take extra ~8 minutes to run on
target and ~2 minutes on host.
Change-Id: I7cd314eca654320104fee26d8c34437450814dc2
David Brazdil [Tue, 24 Feb 2015 12:47:42 +0000 (12:47 +0000)]
Merge "ART: Disable libcore tests failing on bots"
Calin Juravle [Tue, 24 Feb 2015 12:39:53 +0000 (12:39 +0000)]
Merge "[optimizing] Add if-context sensitivity for null popagation."
David Brazdil [Tue, 24 Feb 2015 12:36:03 +0000 (12:36 +0000)]
ART: Disable libcore tests failing on bots
Some tests in previous commits are failing on the testing devices.
Tests dependent on DateTimeFormatter fail on hammerhead due to
misconfigured locales and tests with a server running on localhost
fail due to the loop device being switched off on volantisg. These
problems will be further investigated but this patch disables them
for the time being.
Change-Id: I2dde178925de555f26a4d532be15487f499571b4
Calin Juravle [Mon, 23 Feb 2015 16:46:57 +0000 (16:46 +0000)]
[optimizing] Add if-context sensitivity for null popagation.
Change-Id: I3725b6c6a6cf44440c34a1bfb67e623531e665d6
David Brazdil [Tue, 24 Feb 2015 10:52:45 +0000 (10:52 +0000)]
Merge "ART: Enable more libcore tests (harmony package)"
David Brazdil [Tue, 24 Feb 2015 10:44:29 +0000 (10:44 +0000)]
ART: Enable more libcore tests (harmony package)
This patch enables additional libcore tests run by the ART buildbots.
These are tests from the org.apache.harmony.* packages and take extra
~5 minutes to run on target and ~2 minutes on host.
Change-Id: Idb9fc09ac7df460bd4337bc5151301adddea4b97
David Brazdil [Tue, 24 Feb 2015 10:21:43 +0000 (10:21 +0000)]
Merge "ART: Enable more libcore tests (libcore.* package)"
David Brazdil [Tue, 24 Feb 2015 10:12:06 +0000 (10:12 +0000)]
ART: Enable more libcore tests (libcore.* package)
This patch enables additional libcore tests run by the ART buildbots.
These are tests from the libcore.* packages and take extra ~3 minutes
to run on both host and target.
Change-Id: I89512836adb87b20ed5f9446d3b3ee245f9162dc
Sebastien Hertz [Tue, 24 Feb 2015 09:28:49 +0000 (09:28 +0000)]
Merge "JDWP: update thread synchronization"
Nicolas Geoffray [Tue, 24 Feb 2015 08:11:23 +0000 (08:11 +0000)]
Merge "Revert "Add JIT""
Nicolas Geoffray [Tue, 24 Feb 2015 08:10:57 +0000 (08:10 +0000)]
Revert "Add JIT"
Sorry, run-test crashes on target:
0-05 12:15:51.633 I/DEBUG (27995): Abort message: 'art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast<uintptr_t>(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc=
71e3366b code=0x71e3362d size=
ad000000'
10-05 12:15:51.633 I/DEBUG (27995): r0
00000000 r1
0000542b r2
00000006 r3
00000000
10-05 12:15:51.633 I/DEBUG (27995): r4
00000006 r5
b6f9addc r6
00000002 r7
0000010c
10-05 12:15:51.633 I/DEBUG (27995): r8
b63fe1e8 r9
be8e1418 sl
b6427400 fp
b63fcce0
10-05 12:15:51.633 I/DEBUG (27995): ip
0000542b sp
be8e1358 lr
b6e9a27b pc
b6e9c280 cpsr
40070010
10-05 12:15:51.633 I/DEBUG (27995):
Bug:
17950037
This reverts commit
2535abe7d1fcdd0e6aca782b1f1932a703ed50a4.
Change-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3
Mathieu Chartier [Tue, 24 Feb 2015 02:29:36 +0000 (02:29 +0000)]
Merge "Delete bad DCHECK"
Mathieu Chartier [Tue, 24 Feb 2015 02:24:29 +0000 (18:24 -0800)]
Delete bad DCHECK
The declaring class of a super field could be in a different dex file.
Fixes sdk build.
Change-Id: I6e1738603e71c3c673fa12d9aaa25c9eb84db406
Mathieu Chartier [Tue, 24 Feb 2015 01:29:46 +0000 (01:29 +0000)]
Merge "Add JIT"
Andreas Gampe [Tue, 24 Feb 2015 01:17:13 +0000 (01:17 +0000)]
Merge "ART: Strip error message in run-test"
Andreas Gampe [Tue, 24 Feb 2015 01:15:47 +0000 (17:15 -0800)]
ART: Strip error message in run-test
It seems the output is flaky - sometimes the LOG(ERROR) makes it
to output.txt, sometimes it doesn't. So instead always strip it.
Change-Id: I409b98eb9a5bf0c2e6c1df16ff3b8013a2a85cc5
Mathieu Chartier [Tue, 17 Feb 2015 18:38:49 +0000 (10:38 -0800)]
Add JIT
Currently disabled by default unless -Xjit is passed in.
The proposed JIT is a method JIT which works by utilizing interpreter
instrumentation to request compilation of hot methods async during
runtime.
JIT options:
-Xjit / -Xnojit
-Xjitcodecachesize:N
-Xjitthreshold:integervalue
The JIT has a shared copy of a compiler driver which is accessed
by worker threads to compile individual methods.
Added JIT code cache and data cache, currently sized at 2 MB
capacity by default. Most apps will only fill a small fraction of
this cache however.
Added support to the compiler for compiling interpreter quickened
byte codes.
Added test target ART_TEST_JIT=TRUE and --jit for run-test.
TODO:
Clean up code cache.
Delete compiled methods after they are added to code cache.
Add more optimizations related to runtime checks e.g. direct pointers
for invokes.
Add method recompilation.
Move instrumentation to DexFile to improve performance and reduce
memory usage.
Bug:
17950037
Change-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca
Mathieu Chartier [Tue, 24 Feb 2015 00:33:15 +0000 (00:33 +0000)]
Merge "Only detach shutdown thread if we attached it"
Mathieu Chartier [Mon, 23 Feb 2015 23:31:58 +0000 (15:31 -0800)]
Only detach shutdown thread if we attached it
Speculative fix to:
"Request to unregister unattached thread" bug.
Bug:
18713034
Change-Id: I6e69088dd66970c704010397a11e3758cf107ff9
Andreas Gampe [Mon, 23 Feb 2015 23:48:29 +0000 (23:48 +0000)]
Merge "ART: Allow the execution to stop if the compilation fails via an option"
Jean Christophe Beyler [Fri, 12 Sep 2014 19:03:25 +0000 (12:03 -0700)]
ART: Allow the execution to stop if the compilation fails via an option
The current implementation continues the execution of the application if
dex2oat fails by relying on the interpreter.
This patch adds a -Xno-dex-file-fallback option to stop the default behavior.
This can be used two-fold.
First, one can enforce that a runtime only starts with a boot image. A
follow-up patch will ensure that dex2oat (for apps) and patchoat in general
request that mode and close gracefully otherwise.
Second, this can be used for testing and debugging purposes, as it ensures
that compiler failures & aborts are not silently ignored.
Add testing.
Bug:
19100590
Change-Id: Iaf07b5ccf00942ca8a8ec8687599320a3ddbc089
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
David Brazdil [Mon, 23 Feb 2015 22:27:51 +0000 (22:27 +0000)]
Merge "Optimizing: Remove redundant hash set copy in GVN"
Hiroshi Yamauchi [Mon, 23 Feb 2015 19:30:29 +0000 (19:30 +0000)]
Merge "Avoid unaligned accesses (SIGBUG/BUS_ADRALN) in IRT."
Hiroshi Yamauchi [Mon, 23 Feb 2015 19:14:40 +0000 (11:14 -0800)]
Avoid unaligned accesses (SIGBUG/BUS_ADRALN) in IRT.
Pointers in IrtEntry aren't currently aligned under 64 bit builds. But
unaligned atomic stores (store exclusive) do not work on arm64 (causes
SIGBUG/BUS_ADRALN). Fix CC collector crashes caused by this.
Bug:
12687968
Change-Id: I1d2f5376778a9a1e5cfea876f1f57d7a88ad5445
Mingyao Yang [Mon, 23 Feb 2015 19:25:11 +0000 (19:25 +0000)]
Merge "More checker tests for BCE."
Mingyao Yang [Tue, 10 Feb 2015 02:13:26 +0000 (18:13 -0800)]
More checker tests for BCE.
Also make sure the check on MonotonicValueRange narrow is more strict.
Plus some handling on array length division such as array.length/2.
Added checker tests for each case.
Change-Id: I9f32fc5f6ca1f3da8edec576de66b44d85a50bc6
Andreas Gampe [Mon, 23 Feb 2015 18:41:53 +0000 (18:41 +0000)]
Merge "ART: Introduce NO_RETURN, Mark DoLongJump noreturn"
Andreas Gampe [Mon, 23 Feb 2015 16:12:24 +0000 (08:12 -0800)]
ART: Introduce NO_RETURN, Mark DoLongJump noreturn
Add NO_RETURN macro that adds C++11 noreturn attribute. Mark
DoLongJump methods as noreturn.
Change-Id: Ifde4318e370493237050d4c1349285a0382df23f
David Brazdil [Mon, 23 Feb 2015 18:02:02 +0000 (18:02 +0000)]
Optimizing: Remove redundant hash set copy in GVN
During the GVN analysis, a basic block inherits the set of movable
instructions from its dominator. If the block is the only successor
of the dominating block, there is no need for cloning of the parent
set (a very expensive operation).
Change-Id: I59e033b9e9e093984dc8e903e3a7be1cb3645cc2
Calin Juravle [Mon, 23 Feb 2015 16:05:21 +0000 (16:05 +0000)]
Merge "[optimizing] Fix float addition on x86."
Calin Juravle [Mon, 23 Feb 2015 15:53:39 +0000 (15:53 +0000)]
[optimizing] Fix float addition on x86.
Change-Id: Ic39aaae89b8e5184b98001ea67221a3564e9334a
Nicolas Geoffray [Mon, 23 Feb 2015 15:17:07 +0000 (15:17 +0000)]
Merge "Each primitive kind now spills to different locations."
David Brazdil [Mon, 23 Feb 2015 15:14:09 +0000 (15:14 +0000)]
Merge "Optimizing: Speed up HInstruction use removal"
David Brazdil [Tue, 17 Feb 2015 18:33:36 +0000 (18:33 +0000)]
Optimizing: Speed up HInstruction use removal
Similarly to a previous commit on HEnvironment use removal, this patch
adds links from instructions to their respective inputs' use lists for
contant-time removal at the cost of doubling the size of input lists
(from one pointer per entry to two). Manual testing shows that this
significantly reduces the time required to transform HGraph to SSA
form for some huge methods.
Change-Id: I8dc3e4b0c48a50ac1481eb55c31093b99f4dc29f
Nicolas Geoffray [Mon, 23 Feb 2015 14:14:57 +0000 (14:14 +0000)]
Each primitive kind now spills to different locations.
Having different slots depending on the types greatly simplifies
the parallel move resolver. It also avoids doing FPU <-> Core
register swaps, and force backends to implement such a swap.
Change-Id: Ide9f0452e7ccf9efb8adddbcc246d44b937b253c
Narayan Kamath [Sat, 21 Feb 2015 11:19:21 +0000 (11:19 +0000)]
Merge "Implement a simple count based boot marker."
Narayan Kamath [Mon, 16 Feb 2015 13:51:51 +0000 (13:51 +0000)]
Implement a simple count based boot marker.
We write the number of failed boots to the marker and only
prune the dalvik cache if the number of consecutive failed
boots is higher than a predefined threshold.
Note that the code is forgiving of errors related to boot
markers; we continue the boot process even if we're unable
to create / write or flush the boot marker.
bug:
19360096
Change-Id: Ia17c3b783318ddf43c9199d0f7f09c54a4176667
Andreas Gampe [Fri, 20 Feb 2015 21:19:05 +0000 (21:19 +0000)]
Merge "ART: Add VALGRIND_LIB for gtests"
Andreas Gampe [Fri, 20 Feb 2015 21:15:15 +0000 (13:15 -0800)]
ART: Add VALGRIND_LIB for gtests
Ensure that tests can be run without lunch-ing a target.
Change-Id: If9b4a6c56952418fde703145600717c84e11ef99
Hiroshi Yamauchi [Fri, 20 Feb 2015 19:35:57 +0000 (19:35 +0000)]
Merge "Make UseTLAB a bool flag."
Hiroshi Yamauchi [Fri, 20 Feb 2015 19:28:03 +0000 (11:28 -0800)]
Make UseTLAB a bool flag.
This would make it easier to override its default value at build time.
Change-Id: I643fe1afaf492f0443dc01df0c9a62bb3fa025d9
Andreas Gampe [Fri, 20 Feb 2015 18:45:31 +0000 (18:45 +0000)]
Merge "ART: Fix RosAlloc Valgrind code"
Mathieu Chartier [Fri, 20 Feb 2015 18:44:40 +0000 (18:44 +0000)]
Merge "Revert "Do GC for alloc for unstarted runtimes""
Mathieu Chartier [Fri, 20 Feb 2015 18:44:28 +0000 (18:44 +0000)]
Revert "Do GC for alloc for unstarted runtimes"
Bug:
19451379
This reverts commit
c0a7e2bb1609da40ec67cb7e00c918637c610897.
Change-Id: Ib079e5ce1647fd44239f7f2f658b2c50d619fece
Andreas Gampe [Fri, 20 Feb 2015 00:44:32 +0000 (16:44 -0800)]
ART: Fix RosAlloc Valgrind code
Large object verification needs to take the redzones into account
when checking the page size.
Change-Id: I0529e21d085e82f2c8a6d8552de1e7c1df3956bc
Bill Buzbee [Fri, 20 Feb 2015 17:19:30 +0000 (17:19 +0000)]
Merge "ART: Some conditions should be stricter in GenInlinedMinMax()"
nikolay serdjuk [Tue, 20 Jan 2015 11:03:02 +0000 (17:03 +0600)]
ART: Some conditions should be stricter in GenInlinedMinMax()
When we inline Min or Max intrinsics of long data type in 32-bit
mode we should care about register overlap cases. I.e. when
result and operands share partially or entirely same registers.
We consider three cases:
a) If result is between two operands, then we fail to inline
because implementation tends to be overcomplicated.
b) Since we always copy the first operand into result, we
should check whether result and the second operand share
same registers. If so, we swap the second with the first one.
c) If operands share same registers then we just copy the
first operand into result and stop.
The algorithm requires many registers. Therefore, we try to
reuse some of them. This also needs check for overlap.
Change-Id: I1e327acedfdc63d9b434b21b41d75bb86c41f1d0
Andreas Gampe [Fri, 20 Feb 2015 16:52:16 +0000 (16:52 +0000)]
Merge "ART: Use Valgrind from tree"
Andreas Gampe [Fri, 20 Feb 2015 16:51:38 +0000 (16:51 +0000)]
Merge "ART: Silence some run-test configurations"
Andreas Gampe [Thu, 19 Feb 2015 23:10:24 +0000 (15:10 -0800)]
ART: Silence some run-test configurations
Run-tests running with a failing dex2oat or patchoat are expected
to print error lines of the failure. In this case set the log-level
to FATAL-only, as stripping those errors is overly complicated.
Bug:
18713034
Change-Id: If9c5f50b517b5e906dd0be841ebc1e7987cac928
Vladimir Marko [Fri, 20 Feb 2015 15:57:49 +0000 (15:57 +0000)]
Merge "Fix core spill mask for x86 special suspend."
Vladimir Marko [Fri, 20 Feb 2015 14:53:53 +0000 (14:53 +0000)]
Fix core spill mask for x86 special suspend.
Bug:
19445246
Change-Id: I7dd734e64a4bfa5980fa1be9903e3fd0c2be3749
Calin Juravle [Fri, 20 Feb 2015 14:27:00 +0000 (14:27 +0000)]
Merge "Improve type propagation with if-contexts"
Calin Juravle [Mon, 16 Feb 2015 13:13:29 +0000 (13:13 +0000)]
Improve type propagation with if-contexts
This works by adding a new instruction (HBoundType) after each `if (a
instanceof ClassA) {}` to bound the type that `a` can take in the True-
dominated blocks.
Change-Id: Iae6a150b353486d4509b0d9b092164675732b90c
Roland Levillain [Fri, 20 Feb 2015 11:21:28 +0000 (11:21 +0000)]
Merge "Opt compiler: ARM64: Optimise floating-point comparison with 0.0."
Calin Juravle [Fri, 20 Feb 2015 10:40:50 +0000 (10:40 +0000)]
Merge "Reference type propagation"
Roland Levillain [Fri, 20 Feb 2015 10:27:12 +0000 (10:27 +0000)]
Merge "Display optimizing compiler's CodeInfo objects in oatdump."
Andreas Gampe [Thu, 19 Feb 2015 18:02:19 +0000 (10:02 -0800)]
ART: Use Valgrind from tree
Change-Id: I3e70c37cc04e0a2286e6fece898fcf887273b28c
Andreas Gampe [Thu, 19 Feb 2015 23:24:05 +0000 (23:24 +0000)]
Merge "ART: Do not read from JavaVMExt* after DestroyJavaVM"
Andreas Gampe [Thu, 19 Feb 2015 23:19:50 +0000 (15:19 -0800)]
ART: Do not read from JavaVMExt* after DestroyJavaVM
DestroyJavaVM deletes the structure.
Change-Id: Ida5fb98a47b1ebf0df7d54506e2fec8958fc105b
Mathieu Chartier [Thu, 19 Feb 2015 22:45:16 +0000 (22:45 +0000)]
Merge "Do GC for alloc for unstarted runtimes"
Andreas Gampe [Thu, 19 Feb 2015 22:28:39 +0000 (22:28 +0000)]
Merge "ART: Check image size when opening"
Andreas Gampe [Thu, 19 Feb 2015 19:42:36 +0000 (11:42 -0800)]
ART: Check image size when opening
The image file might have been truncated. In that case, reject
loading the image space.
Bug:
19398702
Change-Id: I8e46340fe1e05629704d6e3bae84caf8b0435125
Mathieu Chartier [Tue, 16 Dec 2014 18:35:19 +0000 (10:35 -0800)]
Do GC for alloc for unstarted runtimes
Currently, concurrent GC requests are ignored for unstarted runtimes.
The new logic is to do a GC for alloc in RequestConcurrentGC if the
runtime is not started. This reduces the java heap size in dex2oat.
Change-Id: I8d4364a4e3537013b27390bb22a6f64aab58c924
Vladimir Marko [Thu, 19 Feb 2015 19:03:44 +0000 (19:03 +0000)]
Merge "Replace a few std::vector with ArenaVector in Mir2Lir."
Andreas Gampe [Thu, 19 Feb 2015 18:57:47 +0000 (18:57 +0000)]
Merge "ART: Make error messages for StackOverflow WARNINGs"
Andreas Gampe [Thu, 19 Feb 2015 18:54:31 +0000 (10:54 -0800)]
ART: Make error messages for StackOverflow WARNINGs
Log error messages as LOG(WARNING). We'll throw either a (partial)
StackOverflow or OutOfMemoryError anyways.
Bug:
18713034
Change-Id: If51c0d6745b02f5ecb98b1387f8bde1e2e57e0c0
Andreas Gampe [Thu, 19 Feb 2015 18:36:59 +0000 (18:36 +0000)]
Merge "ART: Ensure order of field gaps"
Andreas Gampe [Wed, 18 Feb 2015 23:38:57 +0000 (15:38 -0800)]
ART: Ensure order of field gaps
Disambiguate field gaps of same size by starting offset. That will
make the priority queue stable.
Bug:
19413180
Change-Id: I6302a8bbdc590af7e9ec4f332c386c375fa8d8cd
Vladimir Marko [Thu, 19 Feb 2015 15:50:28 +0000 (15:50 +0000)]
Replace a few std::vector with ArenaVector in Mir2Lir.
Change-Id: I7867d60afc60f57cdbbfd312f02883854d65c805
Mathieu Chartier [Thu, 19 Feb 2015 18:00:29 +0000 (18:00 +0000)]
Merge "Move arenas into runtime"
Mathieu Chartier [Wed, 18 Feb 2015 22:33:14 +0000 (14:33 -0800)]
Move arenas into runtime
Moved arena pool into the runtime.
Motivation:
Allow GC to use arena allocators, recycle arena pool for linear alloc.
Bug:
19264997
Change-Id: I8ddbb6d55ee923a980b28fb656c758c5d7697c2f
Vladimir Marko [Thu, 19 Feb 2015 17:42:06 +0000 (17:42 +0000)]
Merge "Add suspend checks to special methods."
Vladimir Marko [Mon, 16 Feb 2015 13:05:59 +0000 (13:05 +0000)]
Add suspend checks to special methods.
Generate suspend checks at the beginning of special methods.
If we need to call to runtime, go to the slow path where we
create a simplified but valid frame, spill all arguments,
call art_quick_test_suspend, restore necessary arguments and
return back to the fast path. This keeps the fast path
overhead to a minimum.
Bug:
19245639
Change-Id: I3de5aee783943941322a49c4cf2c4c94411dbaa2
Calin Juravle [Thu, 12 Feb 2015 15:25:22 +0000 (15:25 +0000)]
Reference type propagation
- propagate reference types between instructions
- remove checked casts when possible
- add StackHandleScopeCollection to manage an arbitrary number of stack
handles (see comments)
Change-Id: I31200067c5e7375a5ea8e2f873c4374ebdb5ee60
Nicolas Geoffray [Thu, 19 Feb 2015 14:01:59 +0000 (14:01 +0000)]
Merge "Ensure the graph is correctly typed."
Nicolas Geoffray [Wed, 18 Feb 2015 14:48:53 +0000 (14:48 +0000)]
Ensure the graph is correctly typed.
We used to be forgiving because of HIntConstant(0) also being
used for null. We now create a special HNullConstant for such uses.
Also, we need to run the dead phi elimination twice during ssa
building to ensure the correctness.
Change-Id: If479efa3680d3358800aebb1cca692fa2d94f6e5
Roland Levillain [Thu, 19 Feb 2015 12:15:55 +0000 (12:15 +0000)]
Merge "Have the opt. compiler set the size of "empty" frames to zero."
Roland Levillain [Wed, 18 Feb 2015 16:54:21 +0000 (16:54 +0000)]
Display optimizing compiler's CodeInfo objects in oatdump.
A few elements are not displayed yet (stack mask, inline info) though.
Change-Id: I5e51a801c580169abc5d1ef43ad581aadc110754
Roland Levillain [Tue, 17 Feb 2015 15:40:09 +0000 (15:40 +0000)]
Have the opt. compiler set the size of "empty" frames to zero.
This is to mimic Quick's behavior and honor stack frame
alignment constraints after changes introduced by Change-Id
I0fdb31e8c631e99091b818874a558c9aa04b1628.
This issue use to make oatdump crash on oat files produced by
the optimized compiler (e.g.
out/host/linux-x86/framework/x86_64/core-optimizing.oat).
Change-Id: I8ba52601edb0a0993eaf8923eba55aafdce5043e
Sebastien Hertz [Thu, 19 Feb 2015 09:59:54 +0000 (09:59 +0000)]
Merge "Fix art_quick_instrumentation_entry for x86"
Sebastien Hertz [Thu, 19 Feb 2015 09:30:48 +0000 (10:30 +0100)]
Fix art_quick_instrumentation_entry for x86
Fixes the stack offset used to restore edx.
Bug:
19402798
Change-Id: Ic3636cd362684564196997c4a3b3bebdc1be9a4e
Andreas Gampe [Thu, 19 Feb 2015 04:54:59 +0000 (04:54 +0000)]
Merge "ART: Fix run-test 099-vmdebug for device"
Andreas Gampe [Thu, 19 Feb 2015 02:30:05 +0000 (18:30 -0800)]
ART: Fix run-test 099-vmdebug for device
We can't expect logcat errors on device. So just swallow them whole.
Bug:
18713034
Change-Id: I58d8595e86f112442a5a1c4c6ef0d614871d890f