OSDN Git Service

android-x86/art.git
9 years agoam 01b7c431: Merge "ART: Print maps directly to log"
Andreas Gampe [Wed, 25 Feb 2015 18:16:35 +0000 (18:16 +0000)]
am 01b7c431: Merge "ART: Print maps directly to log"

* commit '01b7c431ed85e0eae4554f6fc0f79a78bc82f31f':
  ART: Print maps directly to log

9 years agoMerge "ART: Print maps directly to log"
Andreas Gampe [Wed, 25 Feb 2015 18:12:27 +0000 (18:12 +0000)]
Merge "ART: Print maps directly to log"

9 years agoam ec27dc12: Merge "ART: Nano optimization of LiveInterval"
David Brazdil [Wed, 25 Feb 2015 12:20:20 +0000 (12:20 +0000)]
am ec27dc12: Merge "ART: Nano optimization of LiveInterval"

* commit 'ec27dc12124d57283d8f86e5386c95896b01eb23':
  ART: Nano optimization of LiveInterval

9 years agoMerge "ART: Nano optimization of LiveInterval"
David Brazdil [Wed, 25 Feb 2015 12:14:17 +0000 (12:14 +0000)]
Merge "ART: Nano optimization of LiveInterval"

9 years agoART: Nano optimization of LiveInterval
David Brazdil [Wed, 25 Feb 2015 11:57:05 +0000 (11:57 +0000)]
ART: Nano optimization of LiveInterval

Shuffling the order of conditions in the FirstIntersectionWith method
of LiveInterval class can save a couple of comparisons. Even though
this is a tiny optimization, it can save some compilation time since
the method is heavily used during register allocation.

Change-Id: I1817bd95db2d0eb96cc06fb2e9e06ac1cea784fe

9 years agoam 2cfa9f27: Merge "ART: Update description of failing libcore tests"
David Brazdil [Wed, 25 Feb 2015 10:13:53 +0000 (10:13 +0000)]
am 2cfa9f27: Merge "ART: Update description of failing libcore tests"

* commit '2cfa9f2743f4a120070e83b1e34cbec22742780d':
  ART: Update description of failing libcore tests

9 years agoMerge "ART: Update description of failing libcore tests"
David Brazdil [Wed, 25 Feb 2015 09:29:55 +0000 (09:29 +0000)]
Merge "ART: Update description of failing libcore tests"

9 years agoART: Update description of failing libcore tests
David Brazdil [Wed, 25 Feb 2015 09:16:34 +0000 (09:16 +0000)]
ART: Update description of failing libcore tests

One of the tests that was described as failing on volantis fails on
hammerhead too. It was moved to a new category.

Change-Id: Ie58266d51d3aa180a36a460035ea7f016c0b7e3d

9 years agoART: Print maps directly to log
Andreas Gampe [Tue, 24 Feb 2015 23:50:19 +0000 (15:50 -0800)]
ART: Print maps directly to log

Do not read proc maps into a string before printing them later back
to the log. In low-memory situations this can cause a bad_alloc.

External bug: http://b.android.com/153990
Bug: 19494774

Change-Id: Ie63d8788afe8c9da65b30b2f89c50d3dbb820755

9 years agoam 42f8c1c3: Merge "ART: Fix "unused parameters""
Andreas Gampe [Wed, 25 Feb 2015 05:01:29 +0000 (05:01 +0000)]
am 42f8c1c3: Merge "ART: Fix "unused parameters""

* commit '42f8c1c39b74aae50714488525d14de30f9722c9':
  ART: Fix "unused parameters"

9 years agoMerge "ART: Fix "unused parameters""
Andreas Gampe [Wed, 25 Feb 2015 04:56:43 +0000 (04:56 +0000)]
Merge "ART: Fix "unused parameters""

9 years agoART: Fix "unused parameters"
Andreas Gampe [Wed, 25 Feb 2015 04:55:16 +0000 (20:55 -0800)]
ART: Fix "unused parameters"

GCC 4.8 decides that parameters for functions implemented with
"= default" are unused. This currently only impacts x86, but remove
the parameter names anyways.

Change-Id: I01865faa81af68c4c0e0b1cb1fb19e88ef548769

9 years agoam 8fa836e1: Merge "Print thread name for attempting to unregister unattached thread"
Mathieu Chartier [Wed, 25 Feb 2015 03:01:24 +0000 (03:01 +0000)]
am 8fa836e1: Merge "Print thread name for attempting to unregister unattached thread"

* commit '8fa836e16e65aca3aeaa1c4784157207188e6373':
  Print thread name for attempting to unregister unattached thread

9 years agoMerge "Print thread name for attempting to unregister unattached thread"
Mathieu Chartier [Wed, 25 Feb 2015 02:57:41 +0000 (02:57 +0000)]
Merge "Print thread name for attempting to unregister unattached thread"

9 years agoam 79a3082b: Merge "Delete bad DCHECK"
Mathieu Chartier [Wed, 25 Feb 2015 01:57:54 +0000 (01:57 +0000)]
am 79a3082b: Merge "Delete bad DCHECK"

* commit '79a3082b1cf1f1e84d599f3c2d39178b8787db3f':
  Delete bad DCHECK

9 years agoMerge "Delete bad DCHECK"
Mathieu Chartier [Wed, 25 Feb 2015 01:53:10 +0000 (01:53 +0000)]
Merge "Delete bad DCHECK"

9 years agoDelete 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: I8258d64eeff6539afb52448595f5a6ec4c71a6bc

9 years agoPrint thread name for attempting to unregister unattached thread
Mathieu Chartier [Wed, 25 Feb 2015 01:20:30 +0000 (17:20 -0800)]
Print thread name for attempting to unregister unattached thread

Bug: 18713034
Change-Id: Ic0654c6569277e5bbd6d2582140595faaa36cded

9 years agoam 510be430: Merge "Revert "Revert "Add JIT"""
Mathieu Chartier [Wed, 25 Feb 2015 00:51:42 +0000 (00:51 +0000)]
am 510be430: Merge "Revert "Revert "Add JIT"""

* commit '510be430dc4e68c09b56e5636e97a76380927e1d':
  Revert "Revert "Add JIT""

9 years agoMerge "Revert "Revert "Add JIT"""
Mathieu Chartier [Wed, 25 Feb 2015 00:47:14 +0000 (00:47 +0000)]
Merge "Revert "Revert "Add JIT"""

9 years agoam 17b01497: Merge "ART: Add -Wunused"
Andreas Gampe [Wed, 25 Feb 2015 00:31:58 +0000 (00:31 +0000)]
am 17b01497: Merge "ART: Add -Wunused"

* commit '17b01497b29f980a3d515a01adcb5f47df67ac63':
  ART: Add -Wunused

9 years agoMerge "ART: Add -Wunused"
Andreas Gampe [Wed, 25 Feb 2015 00:26:04 +0000 (00:26 +0000)]
Merge "ART: Add -Wunused"

9 years agoART: 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

9 years agoRevert "Revert "Add JIT""
Mathieu Chartier [Tue, 24 Feb 2015 17:37:21 +0000 (09:37 -0800)]
Revert "Revert "Add JIT""

Added missing EntryPointToCodePointer.

This reverts commit a5ca888d715cd0c6c421313211caa1928be3e399.

Change-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af

9 years agoam 354d58ba: Merge "JDWP: assert no pending exception when using JNI"
Sebastien Hertz [Tue, 24 Feb 2015 17:51:57 +0000 (17:51 +0000)]
am 354d58ba: Merge "JDWP: assert no pending exception when using JNI"

* commit '354d58ba776866ea7b1c71f0d0848d5aaa013ae3':
  JDWP: assert no pending exception when using JNI

9 years agoMerge "JDWP: assert no pending exception when using JNI"
Sebastien Hertz [Tue, 24 Feb 2015 17:47:38 +0000 (17:47 +0000)]
Merge "JDWP: assert no pending exception when using JNI"

9 years agoam 91d67430: Merge "ART: Disable libcore crypto test failing on target"
David Brazdil [Tue, 24 Feb 2015 17:33:54 +0000 (17:33 +0000)]
am 91d67430: Merge "ART: Disable libcore crypto test failing on target"

* commit '91d6743016a513bbe8b288923aaa46a075aed133':
  ART: Disable libcore crypto test failing on target

9 years agoMerge "ART: Disable libcore crypto test failing on target"
David Brazdil [Tue, 24 Feb 2015 17:27:17 +0000 (17:27 +0000)]
Merge "ART: Disable libcore crypto test failing on target"

9 years agoART: 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

9 years agoJDWP: assert no pending exception when using JNI
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

9 years agoam 2cb551b1: Merge "not-int can also take non-int (byte and short) instructions."
Nicolas Geoffray [Tue, 24 Feb 2015 16:48:36 +0000 (16:48 +0000)]
am 2cb551b1: Merge "not-int can also take non-int (byte and short) instructions."

* commit '2cb551b1f9ef581b0eb1ef7cbee6bfdb6d9db4b3':
  not-int can also take non-int (byte and short) instructions.

9 years agoam 6726d200: Merge "ART: Fix run-test 118"
Andreas Gampe [Tue, 24 Feb 2015 16:48:35 +0000 (16:48 +0000)]
am 6726d200: Merge "ART: Fix run-test 118"

* commit '6726d200144a1c1be0058c57853f9831223991e6':
  ART: Fix run-test 118

9 years agoMerge "not-int can also take non-int (byte and short) instructions."
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."

9 years agoMerge "ART: Fix run-test 118"
Andreas Gampe [Tue, 24 Feb 2015 16:07:56 +0000 (16:07 +0000)]
Merge "ART: Fix run-test 118"

9 years agoART: 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

9 years agonot-int can also take non-int (byte and short) instructions.
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

9 years agoam a48c573d: Merge "ART: Enable more libcore tests (crypto)"
David Brazdil [Tue, 24 Feb 2015 15:48:22 +0000 (15:48 +0000)]
am a48c573d: Merge "ART: Enable more libcore tests (crypto)"

* commit 'a48c573d2351177d878e36e003f0cdf4d7f9328f':
  ART: Enable more libcore tests (crypto)

9 years agoMerge "ART: Enable more libcore tests (crypto)"
David Brazdil [Tue, 24 Feb 2015 15:43:18 +0000 (15:43 +0000)]
Merge "ART: Enable more libcore tests (crypto)"

9 years agoam 995e7d49: Merge "Fix inlining in the presence of multiple returns."
Nicolas Geoffray [Tue, 24 Feb 2015 15:14:26 +0000 (15:14 +0000)]
am 995e7d49: Merge "Fix inlining in the presence of multiple returns."

* commit '995e7d495eb898b2812e14ad82d54597676e93fd':
  Fix inlining in the presence of multiple returns.

9 years agoMerge "Fix inlining in the presence of multiple returns."
Nicolas Geoffray [Tue, 24 Feb 2015 15:08:36 +0000 (15:08 +0000)]
Merge "Fix inlining in the presence of multiple returns."

9 years agoFix 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

9 years agoam b679039d: Merge "ART: Disable one more libcore test failing on hammerhead"
David Brazdil [Tue, 24 Feb 2015 14:23:22 +0000 (14:23 +0000)]
am b679039d: Merge "ART: Disable one more libcore test failing on hammerhead"

* commit 'b679039d4fdc739959623c2cb1dcc2efa9a1ebe6':
  ART: Disable one more libcore test failing on hammerhead

9 years agoMerge "ART: Disable one more libcore test failing on hammerhead"
David Brazdil [Tue, 24 Feb 2015 14:17:32 +0000 (14:17 +0000)]
Merge "ART: Disable one more libcore test failing on hammerhead"

9 years agoART: 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

9 years agoART: Enable more libcore tests (crypto)
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

9 years agoam 27a3e615: Merge "ART: Disable libcore tests failing on bots"
David Brazdil [Tue, 24 Feb 2015 12:53:17 +0000 (12:53 +0000)]
am 27a3e615: Merge "ART: Disable libcore tests failing on bots"

* commit '27a3e6153df81dd8adbc9ace70fdb3e7922b72f8':
  ART: Disable libcore tests failing on bots

9 years agoMerge "ART: Disable libcore tests failing on bots"
David Brazdil [Tue, 24 Feb 2015 12:47:42 +0000 (12:47 +0000)]
Merge "ART: Disable libcore tests failing on bots"

9 years agoam 2d043b35: Merge "[optimizing] Add if-context sensitivity for null popagation."
Calin Juravle [Tue, 24 Feb 2015 12:43:59 +0000 (12:43 +0000)]
am 2d043b35: Merge "[optimizing] Add if-context sensitivity for null popagation."

* commit '2d043b356d2e5c911892badf78aa56b843c5c3a6':
  [optimizing] Add if-context sensitivity for null popagation.

9 years agoMerge "[optimizing] Add if-context sensitivity for null popagation."
Calin Juravle [Tue, 24 Feb 2015 12:39:53 +0000 (12:39 +0000)]
Merge "[optimizing] Add if-context sensitivity for null popagation."

9 years agoART: Disable libcore tests failing on bots
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

9 years ago[optimizing] Add if-context sensitivity for null popagation.
Calin Juravle [Mon, 23 Feb 2015 16:46:57 +0000 (16:46 +0000)]
[optimizing] Add if-context sensitivity for null popagation.

Change-Id: I3725b6c6a6cf44440c34a1bfb67e623531e665d6

9 years agoam 0b6daeb0: Merge "ART: Enable more libcore tests (harmony package)"
David Brazdil [Tue, 24 Feb 2015 10:59:13 +0000 (10:59 +0000)]
am 0b6daeb0: Merge "ART: Enable more libcore tests (harmony package)"

* commit '0b6daeb0f0014474b542cbba1f713eb0dbefb7f9':
  ART: Enable more libcore tests (harmony package)

9 years agoMerge "ART: Enable more libcore tests (harmony package)"
David Brazdil [Tue, 24 Feb 2015 10:52:45 +0000 (10:52 +0000)]
Merge "ART: Enable more libcore tests (harmony package)"

9 years agoART: 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

9 years agoam 69f46525: Merge "ART: Enable more libcore tests (libcore.* package)"
David Brazdil [Tue, 24 Feb 2015 10:27:33 +0000 (10:27 +0000)]
am 69f46525: Merge "ART: Enable more libcore tests (libcore.* package)"

* commit '69f46525c7238f43eaefdb844106c2e97181c498':
  ART: Enable more libcore tests (libcore.* package)

9 years agoMerge "ART: Enable more libcore tests (libcore.* package)"
David Brazdil [Tue, 24 Feb 2015 10:21:43 +0000 (10:21 +0000)]
Merge "ART: Enable more libcore tests (libcore.* package)"

9 years agoART: 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

9 years agoam 893bee6c: Merge "JDWP: update thread synchronization"
Sebastien Hertz [Tue, 24 Feb 2015 10:08:18 +0000 (10:08 +0000)]
am 893bee6c: Merge "JDWP: update thread synchronization"

* commit '893bee6c8f05fdf7345bf348a8f9d24e9300bf8e':
  JDWP: update thread synchronization

9 years agoMerge "JDWP: update thread synchronization"
Sebastien Hertz [Tue, 24 Feb 2015 09:28:49 +0000 (09:28 +0000)]
Merge "JDWP: update thread synchronization"

9 years agoam f548c54c: Merge "Revert "Add JIT""
Nicolas Geoffray [Tue, 24 Feb 2015 08:16:34 +0000 (08:16 +0000)]
am f548c54c: Merge "Revert "Add JIT""

* commit 'f548c54c69443ba94fcee89daca6f5f499d71e9a':
  Revert "Add JIT"

9 years agoMerge "Revert "Add JIT""
Nicolas Geoffray [Tue, 24 Feb 2015 08:11:23 +0000 (08:11 +0000)]
Merge "Revert "Add JIT""

9 years agoRevert "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

9 years agoam 9e87baff: Merge "Delete bad DCHECK"
Mathieu Chartier [Tue, 24 Feb 2015 02:33:55 +0000 (02:33 +0000)]
am 9e87baff: Merge "Delete bad DCHECK"

* commit '9e87baff2eee8e8ae0700c7391ca4447dbe142b0':
  Delete bad DCHECK

9 years agoMerge "Delete bad DCHECK"
Mathieu Chartier [Tue, 24 Feb 2015 02:29:36 +0000 (02:29 +0000)]
Merge "Delete bad DCHECK"

9 years agoDelete 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

9 years agoam 4fa1a274: Merge "Add JIT"
Mathieu Chartier [Tue, 24 Feb 2015 01:33:57 +0000 (01:33 +0000)]
am 4fa1a274: Merge "Add JIT"

* commit '4fa1a274024067e160a60d0a77124e95dca980e1':
  Add JIT

9 years agoMerge "Add JIT"
Mathieu Chartier [Tue, 24 Feb 2015 01:29:46 +0000 (01:29 +0000)]
Merge "Add JIT"

9 years agoam 40c99de1: Merge "ART: Strip error message in run-test"
Andreas Gampe [Tue, 24 Feb 2015 01:25:04 +0000 (01:25 +0000)]
am 40c99de1: Merge "ART: Strip error message in run-test"

* commit '40c99de1fd26f9ba6fae20a01175240b96fc7443':
  ART: Strip error message in run-test

9 years agoMerge "ART: Strip error message in run-test"
Andreas Gampe [Tue, 24 Feb 2015 01:17:13 +0000 (01:17 +0000)]
Merge "ART: Strip error message in run-test"

9 years agoART: 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

9 years agoAdd JIT
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

9 years agoam 39ce2282: Merge "Only detach shutdown thread if we attached it"
Mathieu Chartier [Tue, 24 Feb 2015 00:39:52 +0000 (00:39 +0000)]
am 39ce2282: Merge "Only detach shutdown thread if we attached it"

* commit '39ce2282ed2b020e51e8d92f442b419ae9dd6434':
  Only detach shutdown thread if we attached it

9 years agoMerge "Only detach shutdown thread if we attached it"
Mathieu Chartier [Tue, 24 Feb 2015 00:33:15 +0000 (00:33 +0000)]
Merge "Only detach shutdown thread if we attached it"

9 years agoOnly 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

9 years agoam 9e80e7fa: Merge "ART: Allow the execution to stop if the compilation fails via...
Andreas Gampe [Mon, 23 Feb 2015 23:53:28 +0000 (23:53 +0000)]
am 9e80e7fa: Merge "ART: Allow the execution to stop if the compilation fails via an option"

* commit '9e80e7fa5ef60f02f35823bc58969c3d5a03453e':
  ART: Allow the execution to stop if the compilation fails via an option

9 years agoMerge "ART: Allow the execution to stop if the compilation fails via an option"
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"

9 years agoART: 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>
9 years agoam 84fbead4: Merge "Optimizing: Remove redundant hash set copy in GVN"
David Brazdil [Mon, 23 Feb 2015 22:35:43 +0000 (22:35 +0000)]
am 84fbead4: Merge "Optimizing: Remove redundant hash set copy in GVN"

* commit '84fbead44b77c5f9f9458d88b42c8925a002dfd4':
  Optimizing: Remove redundant hash set copy in GVN

9 years agoMerge "Optimizing: Remove redundant hash set copy in GVN"
David Brazdil [Mon, 23 Feb 2015 22:27:51 +0000 (22:27 +0000)]
Merge "Optimizing: Remove redundant hash set copy in GVN"

9 years agoam 38fee8ef: Merge "Avoid unaligned accesses (SIGBUG/BUS_ADRALN) in IRT."
Hiroshi Yamauchi [Mon, 23 Feb 2015 19:35:22 +0000 (19:35 +0000)]
am 38fee8ef: Merge "Avoid unaligned accesses (SIGBUG/BUS_ADRALN) in IRT."

* commit '38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984':
  Avoid unaligned accesses (SIGBUG/BUS_ADRALN) in IRT.

9 years agoMerge "Avoid unaligned accesses (SIGBUG/BUS_ADRALN) in IRT."
Hiroshi Yamauchi [Mon, 23 Feb 2015 19:30:29 +0000 (19:30 +0000)]
Merge "Avoid unaligned accesses (SIGBUG/BUS_ADRALN) in IRT."

9 years agoam bad712e2: Merge "More checker tests for BCE."
Mingyao Yang [Mon, 23 Feb 2015 19:29:12 +0000 (19:29 +0000)]
am bad712e2: Merge "More checker tests for BCE."

* commit 'bad712e2576631529381280e52e36905dda5f048':
  More checker tests for BCE.

9 years agoAvoid 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

9 years agoMerge "More checker tests for BCE."
Mingyao Yang [Mon, 23 Feb 2015 19:25:11 +0000 (19:25 +0000)]
Merge "More checker tests for BCE."

9 years agoMore 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

9 years agoam 96ac49a2: Merge "ART: Introduce NO_RETURN, Mark DoLongJump noreturn"
Andreas Gampe [Mon, 23 Feb 2015 18:46:43 +0000 (18:46 +0000)]
am 96ac49a2: Merge "ART: Introduce NO_RETURN, Mark DoLongJump noreturn"

* commit '96ac49a260223dc00291116daa63d7489c52bb0f':
  ART: Introduce NO_RETURN, Mark DoLongJump noreturn

9 years agoMerge "ART: Introduce NO_RETURN, Mark DoLongJump noreturn"
Andreas Gampe [Mon, 23 Feb 2015 18:41:53 +0000 (18:41 +0000)]
Merge "ART: Introduce NO_RETURN, Mark DoLongJump noreturn"

9 years agoART: 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

9 years agoOptimizing: Remove redundant hash set copy in GVN
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

9 years agoam 304e4746: Merge "[optimizing] Fix float addition on x86."
Calin Juravle [Mon, 23 Feb 2015 16:09:18 +0000 (16:09 +0000)]
am 304e4746: Merge "[optimizing] Fix float addition on x86."

* commit '304e47467579c909a6312ef3cca5cdad1433de9c':
  [optimizing] Fix float addition on x86.

9 years agoMerge "[optimizing] Fix float addition on x86."
Calin Juravle [Mon, 23 Feb 2015 16:05:21 +0000 (16:05 +0000)]
Merge "[optimizing] Fix float addition on x86."

9 years ago[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

9 years agoam f9fe845f: Merge "Each primitive kind now spills to different locations."
Nicolas Geoffray [Mon, 23 Feb 2015 15:19:58 +0000 (15:19 +0000)]
am f9fe845f: Merge "Each primitive kind now spills to different locations."

* commit 'f9fe845f587e856acf4b3f1b19e4b7bab828b142':
  Each primitive kind now spills to different locations.

9 years agoam 762374d0: Merge "Optimizing: Speed up HInstruction use removal"
David Brazdil [Mon, 23 Feb 2015 15:19:57 +0000 (15:19 +0000)]
am 762374d0: Merge "Optimizing: Speed up HInstruction use removal"

* commit '762374d084cd2d0a564a4bd410b91794af6853a4':
  Optimizing: Speed up HInstruction use removal

9 years agoMerge "Each primitive kind now spills to different locations."
Nicolas Geoffray [Mon, 23 Feb 2015 15:17:07 +0000 (15:17 +0000)]
Merge "Each primitive kind now spills to different locations."

9 years agoMerge "Optimizing: Speed up HInstruction use removal"
David Brazdil [Mon, 23 Feb 2015 15:14:09 +0000 (15:14 +0000)]
Merge "Optimizing: Speed up HInstruction use removal"

9 years agoOptimizing: 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

9 years agoEach primitive kind now spills to different locations.
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

9 years agoam 73596913: Merge "Implement a simple count based boot marker."
Narayan Kamath [Sat, 21 Feb 2015 11:25:12 +0000 (11:25 +0000)]
am 73596913: Merge "Implement a simple count based boot marker."

* commit '735969139b162f9d45a3c0e47dc24a8aec63c736':
  Implement a simple count based boot marker.

9 years agoMerge "Implement a simple count based boot marker."
Narayan Kamath [Sat, 21 Feb 2015 11:19:21 +0000 (11:19 +0000)]
Merge "Implement a simple count based boot marker."