On Thu, 24 Sep 2020 16:59:03 GMT, Richard Reingruber <rr...@openjdk.org> wrote:
>> Hi, >> >> this is the continuation of the review of the implementation for: >> >> https://bugs.openjdk.java.net/browse/JDK-8227745 >> https://bugs.openjdk.java.net/browse/JDK-8233915 >> >> It allows for JIT optimizations based on escape analysis even if JVMTI >> agents acquire capabilities to access references >> to objects that are subject to such optimizations, e.g. scalar replacement. >> The implementation reverts such >> optimizations just before access very much as when switching from JIT >> compiled execution to the interpreter, aka >> "deoptimization". Webrev.8 was the last one before before the transition to >> Git/Github: >> >> http://cr.openjdk.java.net/~rrich/webrevs/8227745/webrev.8/ >> >> Thanks, Richard. > > Richard Reingruber has updated the pull request with a new target base due to > a merge or a rebase. The incremental > webrev excludes the unrelated changes brought in by the merge/rebase. The > pull request contains three additional > commits since the last revision: > - Merge branch 'master' into JDK-8227745 > - Changes based on dholmes' feedback. > > EscapeBarrier::sync_and_suspend_all(): > > - Set suspend flags before handshake because then the setting will be > visible > after leaving the _thread_blocked state in > JavaThread::wait_for_object_deoptimization() > > JavaThread::wait_for_object_deoptimization() > > - Reuse SpinYield instead of new custom spinning code. > > - Do safepoint check after the loop. This is possible because the > set_obj_deopt_flag is done before the handshake. > > - Don't set_suspend_equivalent() anymore for more simplicity. It's just > an > optimization (that won't pay off here). > > Added/updated source code comments. > > Additional smaller enhancements. > - 8227745, 8233915: Enable Escape Analysis for Better Performance in the > Presence of JVMTI Agents The minor updates in response to my comments are fine. The more major updates ... I can't really comment on. ------------- PR: https://git.openjdk.java.net/jdk/pull/119