19b5021a49285627485675ef31276b8194269600 |
22-Apr-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Forbid HDeoptimize instructions in OSR methods. Otherwise dominated instructions will assume something that isn't necessarily correct if coming from the interpreter. bug:28335959 bug:28249238 bug:28348878 bug:28080135 Contains fix from https://android-review.googlesource.com/#/c/220661/. (cherry picked from commit 93a18c5d4160f632ecdb92af099574e9c7098c49) Change-Id: I86c3f9340077caa0a3e3db896e0519e7d38d91a0
ain.java
|
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
ain.java
|
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
ain.java
|
1939a8866fccbef90167eeb644ba1fa517228ff9 |
07-Apr-2016 |
Vladimir Marko <vmarko@google.com> |
Add 20s timeout to 570-checker-osr. It's better to report a timeout than to hang indefinitely. Change-Id: Ibfa8059c8b44220c7a55801b020094fc342c8047
ain.java
|
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
ain.java
|
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
ain.java
|
17fccfb7b3d4f93c29c0c74bcbae54517f5af2ae |
12-Feb-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Be less extreme on the iteration in 570-checker-osr. Looks like otherwise it timeouts on buildbots. Change-Id: I26f36e9dcd3368bdf326756fdd428e641db06f3b
ain.java
|
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
ain.java
|
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
eoptimizationController.java
ain.java
|