ba17f458e20d82b197536d62e1d61c5300da4932 |
|
06-May-2016 |
Mathieu Chartier <mathieuc@google.com> |
Fix libarttest to be non debug Previously both libarttest and libarttestd had debug enabled. This made it hard to know which one was loaded (couldn't look at kIsDebugBuild). Fixes test 136 with ART_TEST_RUN_TEST_NDEBUG configuration. Bug: 28406866 (cherry picked from commit 48b2b3e57e0510f549e9dc5c5a61f50eec697cf5) Change-Id: I92983f71374b211f96f5b346fec326ea8543f876
|
e5de54cfab5f14ba0b8ff25d8d60901c7021943f |
|
20-Apr-2016 |
Calin Juravle <calin@google.com> |
Split profile recording from jit compilation We still use ProfileInfo objects to record profile information. That gives us the flexibility to add the inline caches in the future and the convenience of the already implemented GC. If UseJIT is false and SaveProfilingInfo true, we will only record the ProfileInfo and never launch compilation tasks. Bug: 27916886 Change-Id: I6e4768dc5d58f2f85f947b276b4244aa11ce3fca
|
73ddf81522b8c47cd06f18507969dd0185d9eb9d |
|
19-Apr-2016 |
Vladimir Marko <vmarko@google.com> |
Fix 570-checker-osr test for non-debuggable mode. For non-debuggable mode, we need to create profiling info. Bug: 28210356 (cherry picked from commit b9d338b96c804a077dc2ed60b36b7ab64dc2c78c) Change-Id: I5044e94bf78bd982007c8e7a3a9e5ee56f861e9c
|
3563c44464ca55b2106373b35110e5ecaae38abf |
|
18-Apr-2016 |
Vladimir Marko <vmarko@google.com> |
Fix inlining loops in OSR mode. When compiling a method in OSR mode and the method does not contain a loop (arguably, a very odd case) but we inline another method with a loop and then the final DCE re-runs the loop identification, the inlined loop would previously be marked as irreducible. However, the SSA liveness analysis expects irreducible loop to have extra loop Phis which were already eliminated from the loop before the inner graph was inlined to the outer graph, so we would fail a DCHECK(). We fix this by not marking inlined loops as irreducible when compiling in OSR mode. Bug: 28210356 (cherry picked from commit fd66c50d64c38e40bafde83b4872e27bbff7546d) Change-Id: I149273b766d1c713c571baad6033c5f70e6dd960
|
b88d59ef4fe611fe47e50a6a19785e03bbd5f93b |
|
17-Feb-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Be a bit smarter with JIT code triggering deoptimization. Do not re-use an OSR method that triggered deoptimization. Also add a stack overflow check before doing OSR. bug:27094810 Change-Id: I6ff6a7fb9b3df9b7c0ff37e3610595efa70ad067
|
28b75740b52b4aa408b972bb6b4fb7e6546d6a5b |
|
16-Feb-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Fix test by checking if we're using JIT. Change-Id: Ifa98815ee2f8af4f338c9469f5afd74fc01022eb
|
d186dd8ecb1f25d3786d6b27adcd6b0b9ca04ea0 |
|
16-Feb-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Re-enable OSR. 1) Fix flaky test by doing explicit ProfilingInfo allocation, and OSR compilation instead of relying on the system. Also make sure the method $noinline$inlineCache always starts with the interpreter, as otherwise we would infinite loop. 2) Ensure the thread doing the OSR cannot be suspended once it holds an OSR method, as otherwise the jit code cache could delete the method before the thread had a chance to jump to it. Change-Id: Ic0dee181a7b23260419a94a7d7405f150433d31a
|
d9994f069dfeaa32ba929ca78816b5b83e2a4134 |
|
11-Feb-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Re-enable OSR. Fixes two bugs: - Dealing with proxy methods, which the compiler and code cache does not handle. - Dealing with phi types, that may have been speculatively optimized but do not hold once jumping to the compiled code. Change-Id: I7dcd9976ef7b12128fff95d2b7ed3e69cc42e90a
|
b331febbab8e916680faba722cc84b66b84218a3 |
|
05-Feb-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Revert "Revert "Implement on-stack replacement for arm/arm64/x86/x86_64."" This reverts commit bd89a5c556324062b7d841843b039392e84cfaf4. Change-Id: I08d190431520baa7fcec8fbdb444519f25ac8d44
|
bd89a5c556324062b7d841843b039392e84cfaf4 |
|
05-Feb-2016 |
David Brazdil <dbrazdil@google.com> |
Revert "Implement on-stack replacement for arm/arm64/x86/x86_64." DCHECK whether loop headers are covered fails. This reverts commit 891bc286963892ed96134ca1adb7822737af9710. Change-Id: I0f9a90630b014b16d20ba1dfba31ce63e6648021
|
891bc286963892ed96134ca1adb7822737af9710 |
|
29-Jan-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Implement on-stack replacement for arm/arm64/x86/x86_64. High-level overview: - osr_method_threshold is used to know when to compile a method in osr mode (-> treat all loops as irreducible). - branch instructions in the compiler query whether they can jump to an osr method. - An osr entry point is found through the stack maps: if a stack map is duplicated in the CodeInfo, it is an osr entry point. Change-Id: Ifb39338cd281e2c7eccce67f4e18d46428be71e4
|