< prev index next >
src/hotspot/share/prims/whitebox.cpp
Print this page
rev 60137 : 8227745: Enable Escape Analysis for Better Performance in the Presence of JVMTI Agents
Reviewed-by: mdoerr, goetz
@@ -75,10 +75,11 @@
#include "runtime/os.hpp"
#include "runtime/sweeper.hpp"
#include "runtime/synchronizer.hpp"
#include "runtime/thread.hpp"
#include "runtime/threadSMR.hpp"
+#include "runtime/vframe.hpp"
#include "runtime/vm_version.hpp"
#include "services/memoryService.hpp"
#include "utilities/align.hpp"
#include "utilities/debug.hpp"
#include "utilities/elfFile.hpp"
@@ -875,10 +876,24 @@
VM_WhiteBoxDeoptimizeFrames op(make_not_entrant == JNI_TRUE);
VMThread::execute(&op);
return op.result();
WB_END
+WB_ENTRY(jboolean, WB_IsFrameDeoptimized(JNIEnv* env, jobject o, jint depth))
+ JavaThread* t = JavaThread::current();
+ bool result = false;
+ if (t->has_last_Java_frame()) {
+ RegisterMap reg_map(t);
+ javaVFrame *jvf = t->last_java_vframe(®_map);
+ for (jint d = 0; d < depth && jvf != NULL; d++) {
+ jvf = jvf->java_sender();
+ }
+ result = jvf != NULL && jvf->fr().is_deoptimized_frame();
+ }
+ return result;
+WB_END
+
WB_ENTRY(void, WB_DeoptimizeAll(JNIEnv* env, jobject o))
CodeCache::mark_all_nmethods_for_deoptimization();
Deoptimization::deoptimize_all_marked();
WB_END
@@ -2354,10 +2369,11 @@
{CC"NMTNewArena", CC"(J)J", (void*)&WB_NMTNewArena },
{CC"NMTFreeArena", CC"(J)V", (void*)&WB_NMTFreeArena },
{CC"NMTArenaMalloc", CC"(JJ)V", (void*)&WB_NMTArenaMalloc },
#endif // INCLUDE_NMT
{CC"deoptimizeFrames", CC"(Z)I", (void*)&WB_DeoptimizeFrames },
+ {CC"isFrameDeoptimized", CC"(I)Z", (void*)&WB_IsFrameDeoptimized},
{CC"deoptimizeAll", CC"()V", (void*)&WB_DeoptimizeAll },
{CC"deoptimizeMethod0", CC"(Ljava/lang/reflect/Executable;Z)I",
(void*)&WB_DeoptimizeMethod },
{CC"isMethodCompiled0", CC"(Ljava/lang/reflect/Executable;Z)Z",
(void*)&WB_IsMethodCompiled },
< prev index next >