[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-serviceability-dev
Subject: RFR(L) 8227745: Enable Escape Analysis for better performance when debugging
From: "Reingruber, Richard" <richard.reingruber () sap ! com>
Date: 2019-07-16 17:23:15
Message-ID: VI1PR02MB48299ED70102800599FB28609BCE0 () VI1PR02MB4829 ! eurprd02 ! prod ! outlook ! com
[Download RAW message or body]
// repost including hotspot-compiler-dev@openjdk.java.net
Hi,
Please review this implementation for the RFE to enable escape analysis whe=
n debugging.
Bug:
https://bugs.openjdk.java.net/browse/JDK-8227745
Webrev:
http://cr.openjdk.java.net/~rrich/webrevs/2019/8227745/webrev.0/
In short the JVMTI implementation is changed to revert EA based optimizatio=
ns
just before objects escape through JVMTI. At runtime there is no escape
information for each object in scope. Instead each scope is annotated, if
non-escaping objects exist and if some are passed as parameters. If a JVMT=
I
agent accesses a reference on stack, then the owning compiled frame C is
deoptimized, if any non-escaping object is in scope. Scalar replaced object=
s are
reallocated on the heap and objects with eliminated locking are relocked. T=
his
is called "deoptimizing objects" for short.
If the agent accesses a reference in a callee frame of C and C is passing a=
ny
non-escaping object as argument then C and its objects are deoptimized as w=
ell.
Deoptimized objects are kept as deferred updates (preexisting
JavaThread::_deferred_locals_updates). Either all objects of a compiled fr=
ame
are deoptimized or none. It is annotated at the corresponding deferred upda=
tes
if it happened already in order to avoid doing it twice.
There is preexisting code to deoptimize objects when deoptimizing a compile=
d
frame. The code was extended to be able to deoptimize objects of a frame th=
at is
not the top frame and to let another thread than the owning thread do it.
Thanks, Richard.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic