OSDN Git Service

android-x86/art.git
8 years agoImprove Checker error messages
David Brazdil [Wed, 2 Mar 2016 16:09:46 +0000 (16:09 +0000)]
Improve Checker error messages

Now prints the offending Checker line and variable values.

Change-Id: Id4395083de6ddddbd69f66cb7ba38c943146799a

8 years agoMerge "Fix one more Checker test after switch to Jack"
David Brazdil [Wed, 2 Mar 2016 13:27:06 +0000 (13:27 +0000)]
Merge "Fix one more Checker test after switch to Jack"

8 years agoFix one more Checker test after switch to Jack
David Brazdil [Wed, 2 Mar 2016 13:25:57 +0000 (13:25 +0000)]
Fix one more Checker test after switch to Jack

Bug: 25635944
Change-Id: I61780b3505104f2b8a62bc2dee889b8cd444c696

8 years agoMerge "ART: Switch Checker run-tests to Jack"
David Brazdil [Wed, 2 Mar 2016 11:41:54 +0000 (11:41 +0000)]
Merge "ART: Switch Checker run-tests to Jack"

8 years agoART: Switch Checker run-tests to Jack
David Brazdil [Mon, 29 Feb 2016 09:14:51 +0000 (09:14 +0000)]
ART: Switch Checker run-tests to Jack

Bug: 25635944
Change-Id: Ic6774028025b51f54589e9625003e8f69cf39dea

8 years agoMerge "Revert "ART: Allow unwinding unattached threads""
Nicolas Geoffray [Wed, 2 Mar 2016 10:27:22 +0000 (10:27 +0000)]
Merge "Revert "ART: Allow unwinding unattached threads""

8 years agoRevert "ART: Allow unwinding unattached threads"
Nicolas Geoffray [Wed, 2 Mar 2016 10:27:01 +0000 (10:27 +0000)]
Revert "ART: Allow unwinding unattached threads"

This reverts commit f7286721a51c772b2abb42fef5bc0d2548df2372.

Change-Id: I6c96ece063041e94d40a96bdd054f89cd7875ade

8 years agoMerge "Give the JIT its own arena pool to avoid lock contentions."
Nicolas Geoffray [Wed, 2 Mar 2016 09:39:06 +0000 (09:39 +0000)]
Merge "Give the JIT its own arena pool to avoid lock contentions."

8 years agoMerge "More run-test with Jack"
Sebastien Hertz [Wed, 2 Mar 2016 09:19:03 +0000 (09:19 +0000)]
Merge "More run-test with Jack"

8 years agoMerge "Disable test after libunwind change."
Nicolas Geoffray [Wed, 2 Mar 2016 08:33:33 +0000 (08:33 +0000)]
Merge "Disable test after libunwind change."

8 years agoDisable test after libunwind change.
Nicolas Geoffray [Wed, 2 Mar 2016 08:30:44 +0000 (08:30 +0000)]
Disable test after libunwind change.

Change that broke it:
https://android-review.googlesource.com/205606

bug:27391690
Change-Id: I73c545619a6a1bb03e49120466ac91686363230f

8 years agoMerge "ART: Allow unwinding unattached threads"
Andreas Gampe [Wed, 2 Mar 2016 05:00:05 +0000 (05:00 +0000)]
Merge "ART: Allow unwinding unattached threads"

8 years agoMerge "Revert "Disable flaky 130-hprof test.""
Mathieu Chartier [Wed, 2 Mar 2016 02:39:49 +0000 (02:39 +0000)]
Merge "Revert "Disable flaky 130-hprof test.""

8 years agoRevert "Disable flaky 130-hprof test."
Mathieu Chartier [Wed, 2 Mar 2016 01:40:55 +0000 (17:40 -0800)]
Revert "Disable flaky 130-hprof test."

Bug: 27337759

This reverts commit 2f0d3bc12f9ade80f4d3c21b7c4aad2cfe10f19e.

8 years agoMerge "Fix allocation tracking race"
Mathieu Chartier [Wed, 2 Mar 2016 01:40:52 +0000 (01:40 +0000)]
Merge "Fix allocation tracking race"

8 years agoFix allocation tracking race
Mathieu Chartier [Tue, 1 Mar 2016 02:13:38 +0000 (18:13 -0800)]
Fix allocation tracking race

Check if changed from uninstrumented to instrumented during GC for
alloc. If we changed, retry the allocation with kInstrumented = true.

Added stress test.

Bug: 27337759

Change-Id: Iaad7977693c9ed927f779a66b29cd58341a837da

8 years agoMerge "Lower JIT thread priority"
Andreas Gampe [Tue, 1 Mar 2016 23:30:10 +0000 (23:30 +0000)]
Merge "Lower JIT thread priority"

8 years agoMerge "ART: Fix overlapping instruction IDs in inliner"
David Brazdil [Tue, 1 Mar 2016 22:55:18 +0000 (22:55 +0000)]
Merge "ART: Fix overlapping instruction IDs in inliner"

8 years agoART: Fix overlapping instruction IDs in inliner
David Brazdil [Mon, 29 Feb 2016 16:53:33 +0000 (16:53 +0000)]
ART: Fix overlapping instruction IDs in inliner

Inliner creates the inner graph so that it generates instruction IDs
higher than the outer graph. This was broken because the inliner
would create instructions in the outer graph before the inner graph
is inlined.

The bug cannot be triggered because the offending instruction would
share the same ID as the first inner HLocal, which is removed before
the inner graph is inlined. The added DCHECKs reveal the hidden problem
and make it safe for HLocals to be removed in the future.

Change-Id: I486eb0f3987e20c50cbec0fb06332229e07fbae9

8 years agoLower JIT thread priority
Andreas Gampe [Tue, 1 Mar 2016 04:49:38 +0000 (20:49 -0800)]
Lower JIT thread priority

Modify the JIT thread to run at a lower priority in order to allow
UI-critical threads to get enough CPU time.

Bug: 27417985

(cherry picked from commit e701f088f8fe3a2c1f16e2895402f26283f4bcc7)

Change-Id: I5b962a7970ae81dac9e01a8011128c538cd78e40

8 years agoART: Allow unwinding unattached threads
Andreas Gampe [Tue, 1 Mar 2016 22:38:37 +0000 (14:38 -0800)]
ART: Allow unwinding unattached threads

Partial revert of commit ed8b723c5f3989d2593ec21c65c96d6d8bf25579.

Make it (constexpr) configurable whether we allow unwinding native
stacks of unattached threads.

Change-Id: Ibb1fd0956fb796583f78ec9c3a74521f6fbe96d9

8 years agoMerge "Revert "Use the interpreter as a heartbeat for the JIT.""
Nicolas Geoffray [Tue, 1 Mar 2016 22:18:18 +0000 (22:18 +0000)]
Merge "Revert "Use the interpreter as a heartbeat for the JIT.""

8 years agoRevert "Use the interpreter as a heartbeat for the JIT."
Nicolas Geoffray [Tue, 1 Mar 2016 22:18:02 +0000 (22:18 +0000)]
Revert "Use the interpreter as a heartbeat for the JIT."

Hits a DCHECK testing libcore.
    art F 11973 12675 art/runtime/jit/jit_code_cache.cc:644] Check failed: it.second->GetProfilingInfo(sizeof(void*)) != nullptr

Bug: 27398183
Bug: 23128949
Bug: 26846185

This reverts commit 7273a5d045d3ceb3ff011ad65765356b69b155e8.

Change-Id: I6614a82e775ea71aa16f041313f67546db41eac8

8 years agoMerge "Revert "Fix bogus interaction between code cache and instrumentation.""
Nicolas Geoffray [Tue, 1 Mar 2016 22:16:55 +0000 (22:16 +0000)]
Merge "Revert "Fix bogus interaction between code cache and instrumentation.""

8 years agoRevert "Fix bogus interaction between code cache and instrumentation."
Nicolas Geoffray [Tue, 1 Mar 2016 22:16:35 +0000 (22:16 +0000)]
Revert "Fix bogus interaction between code cache and instrumentation."

hits a DCHECK when testing libcore:
    art F 11973 12675 art/runtime/jit/jit_code_cache.cc:644] Check failed: it.second->GetProfilingInfo(sizeof(void*)) != nullptr

This reverts commit e9924b7d4fcafe7261233d2c16ebb73d7bb5e8e8.

Change-Id: I37d05991b9506a53a7c76738a7e4a6def1010958

8 years agoMerge "Standby list for dyn bce in potentially infinite loops."
Aart Bik [Tue, 1 Mar 2016 22:10:46 +0000 (22:10 +0000)]
Merge "Standby list for dyn bce in potentially infinite loops."

8 years agoStandby list for dyn bce in potentially infinite loops.
Aart Bik [Tue, 1 Mar 2016 18:39:25 +0000 (10:39 -0800)]
Standby list for dyn bce in potentially infinite loops.

Rationale:
The old code relied on "luck" to revisit basic blocks
after dynamic bce and incorporate all bounds checks
in potentially infinite loops that were "made" finite.
Now that revisiting has been removed completely, keeping
a standby list ensures all candidates are considered.

Change-Id: Ida3cf63be1307be6c2b0258d3e64b163f12be235

8 years agoMerge "Fix bogus interaction between code cache and instrumentation."
Nicolas Geoffray [Tue, 1 Mar 2016 18:51:27 +0000 (18:51 +0000)]
Merge "Fix bogus interaction between code cache and instrumentation."

8 years agoFix bogus interaction between code cache and instrumentation.
Nicolas Geoffray [Tue, 1 Mar 2016 18:43:46 +0000 (18:43 +0000)]
Fix bogus interaction between code cache and instrumentation.

Change-Id: Icc314089ec1a05248b8994476d478a543e629e4d

8 years agoMerge "Revert "Revert "Fast ART x86_64 interpretator"""
Bill Buzbee [Tue, 1 Mar 2016 18:19:42 +0000 (18:19 +0000)]
Merge "Revert "Revert "Fast ART x86_64 interpretator"""

8 years agoMerge "Fixed bug on incorrectly revisiting same block."
Aart Bik [Tue, 1 Mar 2016 17:18:37 +0000 (17:18 +0000)]
Merge "Fixed bug on incorrectly revisiting same block."

8 years agoMerge "x86 Fast Interpreter: Fix CFI"
Bill Buzbee [Tue, 1 Mar 2016 15:35:07 +0000 (15:35 +0000)]
Merge "x86 Fast Interpreter: Fix CFI"

8 years agoMerge "Use the interpreter as a heartbeat for the JIT."
Nicolas Geoffray [Tue, 1 Mar 2016 15:17:42 +0000 (15:17 +0000)]
Merge "Use the interpreter as a heartbeat for the JIT."

8 years agoMore run-test with Jack
Sebastien Hertz [Mon, 29 Feb 2016 15:54:16 +0000 (16:54 +0100)]
More run-test with Jack

Updates the following tests
* 004-ReferenceMap: updates expectations
* 004-StackWalk: updates expectations
* 089-many-methods: updates expectations
* 138-duplicate-classes-check2: add Jack support
* 454-get-vreg: updates expectations

Bug: 19467889
Change-Id: I086e170b1951c9fdac5bd4e0234ac504644db5a1

8 years agoMerge "Fix the signature of the IndexOf entry point."
Roland Levillain [Tue, 1 Mar 2016 14:38:42 +0000 (14:38 +0000)]
Merge "Fix the signature of the IndexOf entry point."

8 years agoUse the interpreter as a heartbeat for the JIT.
Nicolas Geoffray [Mon, 29 Feb 2016 15:35:39 +0000 (15:35 +0000)]
Use the interpreter as a heartbeat for the JIT.

When doing a partial code cache collection, update all entrypoints to
interpreter, so that the next full collection will remove code
that wasn't executed during that window.

bug:27398183
bug:23128949
bug:26846185

Change-Id: I4423f5c4810dac183dc8973078bf218818745e80

8 years agoMerge "Dump more information to diagnose problem."
Nicolas Geoffray [Tue, 1 Mar 2016 13:31:16 +0000 (13:31 +0000)]
Merge "Dump more information to diagnose problem."

8 years agoMerge "Optimizing: Do not depend on sharpening in test 577"
Roland Levillain [Tue, 1 Mar 2016 13:19:49 +0000 (13:19 +0000)]
Merge "Optimizing: Do not depend on sharpening in test 577"

8 years agoGive the JIT its own arena pool to avoid lock contentions.
Nicolas Geoffray [Tue, 1 Mar 2016 13:17:58 +0000 (13:17 +0000)]
Give the JIT its own arena pool to avoid lock contentions.

Sharing it with the verifier and the class loader is not ideal,
especially at startup time.

bug:27398183
bug:23128949
Change-Id: I1b91663a13f6c5b33ad3b4be780d93eb7fe445b4

8 years agoDump more information to diagnose problem.
Nicolas Geoffray [Tue, 1 Mar 2016 12:18:47 +0000 (12:18 +0000)]
Dump more information to diagnose problem.

bug:27424509
Change-Id: Id502cf408a7f117a2a891534f5c999d60f9370b1

8 years agox86 Fast Interpreter: Fix CFI
Serguei Katkov [Tue, 1 Mar 2016 09:53:22 +0000 (15:53 +0600)]
x86 Fast Interpreter: Fix CFI

With this change gdb can fall through x86 Fast Interpreter frame.

Change-Id: Ia5efe0059ecbdb09491d37ab47367e222d29f1d3
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
8 years agoMerge "Improve documentation about StringFactory.newStringFromChars."
Roland Levillain [Tue, 1 Mar 2016 10:24:08 +0000 (10:24 +0000)]
Merge "Improve documentation about StringFactory.newStringFromChars."

8 years agoRevert "Revert "Fast ART x86_64 interpretator""
Serguei Katkov [Tue, 1 Mar 2016 10:10:48 +0000 (16:10 +0600)]
Revert "Revert "Fast ART x86_64 interpretator""

CFI is updated. Now unwinder can fall through fast interpreter.

This reverts commit c4a575f58007036ff3408b15c2ec48108add20f3.

Change-Id: Ibb0a2ef41e4d02ab0b4ecc4f030ba0e72971aa9d
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
8 years agoMerge "Revert "Disable symbolizing traces on volantis.""
Nicolas Geoffray [Tue, 1 Mar 2016 09:30:56 +0000 (09:30 +0000)]
Merge "Revert "Disable symbolizing traces on volantis.""

8 years agoRevert "Disable symbolizing traces on volantis."
Nicolas Geoffray [Tue, 1 Mar 2016 09:28:26 +0000 (09:28 +0000)]
Revert "Disable symbolizing traces on volantis."

Devices have been updated to M.

This reverts commit 95303c682bba971128950ef82c8f6c247917ffff.

Change-Id: Ib6620f88b939700e53af87d2003ea8bbe222e1bc

8 years agoMerge "Disable flaky 130-hprof test."
Nicolas Geoffray [Tue, 1 Mar 2016 09:10:43 +0000 (09:10 +0000)]
Merge "Disable flaky 130-hprof test."

8 years agoDisable flaky 130-hprof test.
Nicolas Geoffray [Tue, 1 Mar 2016 09:09:35 +0000 (09:09 +0000)]
Disable flaky 130-hprof test.

bug:27337759
Change-Id: I167bd42ef539bce46978b07f755efd57bc61b2f2

8 years agoFixed bug on incorrectly revisiting same block.
Aart Bik [Mon, 29 Feb 2016 21:56:44 +0000 (13:56 -0800)]
Fixed bug on incorrectly revisiting same block.

Rationale:
Aart's fuzz tester found this particular bug, where
revisiting a block (after dynamic bce) would cause
static array length based bce to feed into itself
and thus incorrectly remove a needed bounds check.

bug=27376274

Change-Id: I9163f283af355d444b4cec707f194fe2b67c2572

8 years agoMerge "[MIPS] Add Fast Art interpreter for Mips32."
Bill Buzbee [Mon, 29 Feb 2016 18:54:10 +0000 (18:54 +0000)]
Merge "[MIPS] Add Fast Art interpreter for Mips32."

8 years agoMerge "Revert "Revert "Improve immune spaces logic"""
Mathieu Chartier [Mon, 29 Feb 2016 18:42:22 +0000 (18:42 +0000)]
Merge "Revert "Revert "Improve immune spaces logic"""

8 years agoRevert "Revert "Improve immune spaces logic""
Mathieu Chartier [Sun, 28 Feb 2016 21:10:58 +0000 (13:10 -0800)]
Revert "Revert "Improve immune spaces logic""

Test was flaky due to missing guard page at the end of the region.

Bug: 27136196

This reverts commit 07dbbca0b42cb8da1811de8209b4a7d4becfc7b2.

Change-Id: I4eb345f34e66b8684cd71a7897e3a8caa2f84140

8 years agoFix the signature of the IndexOf entry point.
Roland Levillain [Mon, 29 Feb 2016 18:26:54 +0000 (18:26 +0000)]
Fix the signature of the IndexOf entry point.

The IndexOf entry point was declared as taking four
arguments (void*, uint32_t, uint32_t, uint32_t) whereas all
actual implementations use three arguments (void*, uint32_t,
uint32_t).  As that fourth argument is not documented, drop
it from the intrinsic declaration to have it match the
implementations.

Change-Id: I65d747033192025ccd2b9a5e8f8ed05b77a21941

8 years agoImprove documentation about StringFactory.newStringFromChars.
Roland Levillain [Mon, 29 Feb 2016 16:23:48 +0000 (16:23 +0000)]
Improve documentation about StringFactory.newStringFromChars.

Make it clear that the native method requires its third
argument to be non-null, and therefore that the intrinsics
do not need a null check for it.

Bug: 27378573
Change-Id: Id2f78ceb0f7674f1066bc3f216b738358ca25542

8 years agoMerge "Bug fix for polymorphic inlining."
Nicolas Geoffray [Mon, 29 Feb 2016 14:30:18 +0000 (14:30 +0000)]
Merge "Bug fix for polymorphic inlining."

8 years agoMerge "Cleanup polymorphic inlining to the same target."
Nicolas Geoffray [Mon, 29 Feb 2016 14:30:00 +0000 (14:30 +0000)]
Merge "Cleanup polymorphic inlining to the same target."

8 years agoCleanup polymorphic inlining to the same target.
Nicolas Geoffray [Thu, 25 Feb 2016 16:17:54 +0000 (16:17 +0000)]
Cleanup polymorphic inlining to the same target.

- Don't do expensive lookups, just fetch the ArtMethods from the
  imtable or vtable.
- Don't perform the optimization if we may end up in the conflicting
  trampoline.

bug:27398183

Change-Id: I327c9f7c3a85d570a057ff8f18602e8e52402fdc

8 years agoBug fix for polymorphic inlining.
Nicolas Geoffray [Mon, 29 Feb 2016 11:46:58 +0000 (11:46 +0000)]
Bug fix for polymorphic inlining.

The code used to wrongly propagate try/catch information to
new blocks. Since it has the same logic as Hraph::InlineInto,
extract the code that updates loop and try/catch information
to blocks to a shared method.

bug:27330865
bug:27372101
bug:27360329

Change-Id: I4386f724d8d412bde5bcc04fda6955bc3bacf5a9

8 years agoOptimizing: Do not depend on sharpening in test 577
Goran Jakovljevic [Mon, 29 Feb 2016 11:15:34 +0000 (12:15 +0100)]
Optimizing: Do not depend on sharpening in test 577

The sharpening may or may not remove the ArtMethod*
parameter, so the test must not depend on its absence.
This fixes the test 577 checker test on mips/mips64.

Change-Id: I01a2fc1bd2755804326a2ac284ee81e99fc91aa6

8 years agoMerge "Disable symbolizing traces on volantis."
Nicolas Geoffray [Mon, 29 Feb 2016 09:49:55 +0000 (09:49 +0000)]
Merge "Disable symbolizing traces on volantis."

8 years agoDisable symbolizing traces on volantis.
Nicolas Geoffray [Mon, 29 Feb 2016 09:35:26 +0000 (09:35 +0000)]
Disable symbolizing traces on volantis.

Change-Id: I1ba6b5a173e77e635d721dea8433cfcb8b0b787b

8 years agoMerge "Revert "Improve immune spaces logic""
Nicolas Geoffray [Sat, 27 Feb 2016 11:30:49 +0000 (11:30 +0000)]
Merge "Revert "Improve immune spaces logic""

8 years agoRevert "Improve immune spaces logic"
Nicolas Geoffray [Sat, 27 Feb 2016 11:30:25 +0000 (11:30 +0000)]
Revert "Improve immune spaces logic"

test is flaky. For example:

[ RUN      ] ImmuneSpacesTest.MultiImage
art/runtime/gc/collector/immune_spaces_test.cc:351: Failure
Value of: space5->Limit()
  Actual: 0xb6d72000
Expected: reinterpret_cast<uint8_t*>(spaces.GetLargestImmuneRegion().End())
Which is: 0xb6d93000
[  FAILED  ] ImmuneSpacesTest.MultiImage (1076 ms)

Bug: 27136196

This reverts commit 17b8bce064fe4c0b29117abe489b7f8c2c950d43.

Change-Id: I9168421dd6ebabc271ed5c2cdbc5a27c211dcf5a

8 years agoMerge "Improve immune spaces logic"
Mathieu Chartier [Sat, 27 Feb 2016 01:22:19 +0000 (01:22 +0000)]
Merge "Improve immune spaces logic"

8 years agoImprove immune spaces logic
Mathieu Chartier [Tue, 23 Feb 2016 03:32:16 +0000 (19:32 -0800)]
Improve immune spaces logic

We now properly include the largest continuous region with the most
image bytes. Oat bytes are considered as part of the region but are
not counted when comparing. This can result in more image bytes in
cases where large oat files were previously included for the immune
region.

Also added handling for adjacent oat files:
[image][image][oat][oat][space] will now properly be a single region.

Bug: 27136196
Change-Id: If2c002176dd32122e320e8a94551df46bd95256a

8 years agoMerge "ART: Add unstarted-runtime functions"
Andreas Gampe [Fri, 26 Feb 2016 23:44:02 +0000 (23:44 +0000)]
Merge "ART: Add unstarted-runtime functions"

8 years agoART: Add unstarted-runtime functions
Andreas Gampe [Mon, 22 Feb 2016 18:03:12 +0000 (10:03 -0800)]
ART: Add unstarted-runtime functions

Add more functions to allow compile-time initialization of
code.

Bug: 27248115

(cherry picked from commit 0866f4ed6338faa4a193b7e819fc7cd72bd7b0ae)

Change-Id: Iaf8d92deb73547ccd31c0d6dde68da3bc14c3985

8 years agoMerge "Support new JDWP InterfaceType.InvokeMethod command"
Alex Light [Fri, 26 Feb 2016 23:35:49 +0000 (23:35 +0000)]
Merge "Support new JDWP InterfaceType.InvokeMethod command"

8 years agoMerge "Add and use loaded class profiling"
Mathieu Chartier [Fri, 26 Feb 2016 22:23:38 +0000 (22:23 +0000)]
Merge "Add and use loaded class profiling"

8 years agoAdd and use loaded class profiling
Mathieu Chartier [Thu, 10 Dec 2015 00:38:30 +0000 (16:38 -0800)]
Add and use loaded class profiling

Class profiling is a way to keep track of which classes are resolved.
From here the compiler can use this information to generate a smaller
app image.

TODO: Add tests for profile stuff.

Bug: 22858531

(cherry picked from commit 8913fc1a27df8cf3b37fd99e94d87f290591328e)

Change-Id: Ifcd09230cbdc266305bc1247e0d31e7920eb353e

8 years agoMerge "Assembly TLAB allocation fast path for arm."
Hiroshi Yamauchi [Fri, 26 Feb 2016 20:03:27 +0000 (20:03 +0000)]
Merge "Assembly TLAB allocation fast path for arm."

8 years agoMerge "Add JNI tests for lambdas"
Alex Light [Fri, 26 Feb 2016 19:02:32 +0000 (19:02 +0000)]
Merge "Add JNI tests for lambdas"

8 years agoMerge "Implement fp to bits methods as intrinsics."
Aart Bik [Fri, 26 Feb 2016 18:27:29 +0000 (18:27 +0000)]
Merge "Implement fp to bits methods as intrinsics."

8 years agoAdd JNI tests for lambdas
Alex Light [Fri, 26 Feb 2016 00:13:54 +0000 (16:13 -0800)]
Add JNI tests for lambdas

Bug: 27259142

Change-Id: I2a1b31db85dc487c1e6a62609d4497c3a4d4d3a6

8 years agoImplement fp to bits methods as intrinsics.
Aart Bik [Thu, 25 Feb 2016 19:32:32 +0000 (11:32 -0800)]
Implement fp to bits methods as intrinsics.

Rationale:
Better optimization, better performance.

Results on libcore benchmark:

Most gain is from moving the invariant call out of the loop
after we detect everything is a side-effect free intrinsic.
But generated code in general case is much cleaner too.

Before:
timeFloatToIntBits() in 181 ms.
timeFloatToRawIntBits() in 35 ms.
timeDoubleToLongBits() in 208 ms.
timeDoubleToRawLongBits() in 35 ms.

After:
timeFloatToIntBits() in 36 ms.
timeFloatToRawIntBits() in 35 ms.
timeDoubleToLongBits() in 35 ms.
timeDoubleToRawLongBits() in 34 ms.

bug=11548336

Change-Id: I6e001bd3708e800bd75a82b8950fb3a0fc01766e

8 years agoMerge "Optimizing: Reduce memory usage of HInstructions."
Vladimir Marko [Fri, 26 Feb 2016 16:39:57 +0000 (16:39 +0000)]
Merge "Optimizing: Reduce memory usage of HInstructions."

8 years agoOptimizing: Reduce memory usage of HInstructions.
Vladimir Marko [Thu, 25 Feb 2016 11:37:38 +0000 (11:37 +0000)]
Optimizing: Reduce memory usage of HInstructions.

Pack narrow fields and flags into a single 32-bit field.

Change-Id: Ib2f7abf987caee0339018d21f0d498f8db63542d

8 years agoMerge "Revert "Revert "ART: Support interpreter switching in x86 mterp"""
Bill Buzbee [Fri, 26 Feb 2016 14:10:54 +0000 (14:10 +0000)]
Merge "Revert "Revert "ART: Support interpreter switching in x86 mterp"""

8 years agoMerge "Optimizing: Add ARM and ARM64 intrinsics support for StringGetCharsNoCheck"
Nicolas Geoffray [Fri, 26 Feb 2016 13:43:56 +0000 (13:43 +0000)]
Merge "Optimizing: Add ARM and ARM64 intrinsics support for StringGetCharsNoCheck"

8 years agoMerge "Revert "Fast ART x86_64 interpretator""
Nicolas Geoffray [Fri, 26 Feb 2016 08:57:18 +0000 (08:57 +0000)]
Merge "Revert "Fast ART x86_64 interpretator""

8 years agoRevert "Fast ART x86_64 interpretator"
Nicolas Geoffray [Fri, 26 Feb 2016 08:56:45 +0000 (08:56 +0000)]
Revert "Fast ART x86_64 interpretator"

Fails gcstress configuration.

This reverts commit c669beb798e273dd3d44cfa6a7a95ff90eba7209.

Change-Id: Ifac92471f91a116fc271d0dde8356fbbb0a08048

8 years ago[MIPS] Add Fast Art interpreter for Mips32.
Douglas Leung [Fri, 26 Feb 2016 04:05:47 +0000 (20:05 -0800)]
[MIPS] Add Fast Art interpreter for Mips32.

Change-Id: I6b9714dc8c01b8c9080bcba175faec1d2de08f8f

8 years agoOptimizing: Add ARM and ARM64 intrinsics support for StringGetCharsNoCheck
Tim Zhang [Tue, 19 Jan 2016 15:39:24 +0000 (23:39 +0800)]
Optimizing: Add ARM and ARM64 intrinsics support for StringGetCharsNoCheck

This change refers to x86 implementation of StringGetCharsNoCheck and
arm implementation of SystemArrayCopy.

Change-Id: I1cb86854a2a8fa8736af7726b8efacd00d416f6f

8 years agoMerge "Add lz4hc image compression format"
Mathieu Chartier [Fri, 26 Feb 2016 00:44:06 +0000 (00:44 +0000)]
Merge "Add lz4hc image compression format"

8 years agoMerge "Fast ART x86_64 interpretator"
Bill Buzbee [Thu, 25 Feb 2016 23:18:19 +0000 (23:18 +0000)]
Merge "Fast ART x86_64 interpretator"

8 years agoAdd lz4hc image compression format
Mathieu Chartier [Thu, 25 Feb 2016 21:52:10 +0000 (13:52 -0800)]
Add lz4hc image compression format

Smaller than lz4 and decompresses at the same speed. Compression is
a bit slower.

Example saves on old FB APK:
Uncompressed: 44748800 bytes
LZ4: 12443648 bytes
LZ4HC: 11055104 bytes

Generating the image slows down by ~1s per 20MB of image due to
slower compression. Decompression is about the same speed but there
should be a slight speedup since less data needs to be read from
flash.

Added test.

Bug: 22858531

Change-Id: Ib2704305b9bec5b0ba3b1e871f59f4eedff330b7

8 years agoAssembly TLAB allocation fast path for arm.
Hiroshi Yamauchi [Fri, 11 Dec 2015 23:46:19 +0000 (15:46 -0800)]
Assembly TLAB allocation fast path for arm.

Speedup (GSS GC with TLAB on N5):
    BinaryTrees:  1872 ->  796 ms (-57%)
    MemAllocTest: 2522 -> 2219 ms (-12%)

Bug: 9986565
Change-Id: Icb9d1259461f3abe83a4a82c8aff911937eaf57d

8 years agoMerge "Add a decompression scoped timing for image loading"
Mathieu Chartier [Thu, 25 Feb 2016 21:55:13 +0000 (21:55 +0000)]
Merge "Add a decompression scoped timing for image loading"

8 years agoMerge "AOT compile framework code as non-debuggable"
Mingyao Yang [Thu, 25 Feb 2016 20:55:22 +0000 (20:55 +0000)]
Merge "AOT compile framework code as non-debuggable"

8 years agoAdd a decompression scoped timing for image loading
Mathieu Chartier [Thu, 25 Feb 2016 20:28:40 +0000 (12:28 -0800)]
Add a decompression scoped timing for image loading

Shows up in systrace.

Bug: 22858531
Change-Id: Ic165cd0106dd019c002b600d37560b71b4e351d1

8 years agoMerge "Add StrictMath.round tests for large integers."
Vladimir Marko [Thu, 25 Feb 2016 20:26:31 +0000 (20:26 +0000)]
Merge "Add StrictMath.round tests for large integers."

8 years agoMerge "Recognize for (int i = 0; i != x.length; i++) loops"
Aart Bik [Thu, 25 Feb 2016 18:48:50 +0000 (18:48 +0000)]
Merge "Recognize for (int i = 0; i != x.length; i++) loops"

8 years agoRevert "Revert "ART: Support interpreter switching in x86 mterp""
Bill Buzbee [Thu, 25 Feb 2016 17:37:46 +0000 (17:37 +0000)]
Revert "Revert "ART: Support interpreter switching in x86 mterp""

Fixes the invoke template.  Previously, it was permitting
an interpreter switch *before* advancing the Dalvik PC.
This meant that on a switch, the invoke would be interpreted
twice.

This reverts commit a14bf4460268064e0adc4bb210d237209be33eaf.

Change-Id: I285d19077c8dd58ce607a4c42ed20549942fab45

8 years agoMerge "Disable test 097-duplicate-method for investigation"
Sebastien Hertz [Thu, 25 Feb 2016 18:36:09 +0000 (18:36 +0000)]
Merge "Disable test 097-duplicate-method for investigation"

8 years agoDisable test 097-duplicate-method for investigation
Sebastien Hertz [Thu, 25 Feb 2016 17:50:23 +0000 (18:50 +0100)]
Disable test 097-duplicate-method for investigation

Broekn by latest Jack release (1.2-a19)

Bug: 27358065
Change-Id: Ifd66522bde4c5b93435c6d9ab11ebb407f842df6

8 years agoAdd StrictMath.round tests for large integers.
Vladimir Marko [Thu, 25 Feb 2016 17:50:41 +0000 (17:50 +0000)]
Add StrictMath.round tests for large integers.

This is a follow-up to
    https://android-review.googlesource.com/203175 .

Bug: 27166445
Change-Id: I850999c782017650017fad7e27c83b60b57edaf9

8 years agoSupport new JDWP InterfaceType.InvokeMethod command
Alex Light [Thu, 25 Feb 2016 00:35:59 +0000 (16:35 -0800)]
Support new JDWP InterfaceType.InvokeMethod command

This command is used to invoke static methods in interfaces.

Bug: 27218415

Change-Id: Ie4dc1876a20567240267f309dc18f1aec2c1b4c2

8 years agoMerge "Make sure constantIndexing2 is optimized with DEOPT."
Aart Bik [Thu, 25 Feb 2016 17:38:08 +0000 (17:38 +0000)]
Merge "Make sure constantIndexing2 is optimized with DEOPT."

8 years agoRecognize for (int i = 0; i != x.length; i++) loops
Aart Bik [Wed, 24 Feb 2016 22:17:53 +0000 (14:17 -0800)]
Recognize for (int i = 0; i != x.length; i++) loops

Rationale:
Idiom occurs in real-life and is very straightforwardly
recognized by existing induction/range machinery.

Change-Id: I965a16e9de72f3523ea5023d30ed1c4e47ed5010

8 years agoMerge "Dump the number of OSR compiled code."
Nicolas Geoffray [Thu, 25 Feb 2016 16:46:48 +0000 (16:46 +0000)]
Merge "Dump the number of OSR compiled code."

8 years agoMerge "Optimizing: ARM64 negated bitwise operations simplification"
Roland Levillain [Thu, 25 Feb 2016 16:36:21 +0000 (16:36 +0000)]
Merge "Optimizing: ARM64 negated bitwise operations simplification"