src/share/vm/runtime/sharedRuntime.hpp
Print this page
rev 2893 : 7121756: Improve C1 inlining policy by using profiling at call sites
Summary: profile based recompilation of methods with C1 with more inlining.
Reviewed-by:
@@ -50,17 +50,23 @@
private:
static methodHandle resolve_sub_helper(JavaThread *thread,
bool is_virtual,
bool is_optimized, TRAPS);
+ static methodHandle resolve_profile_helper(JavaThread *thread, TRAPS);
+
// Shared stub locations
static RuntimeStub* _wrong_method_blob;
static RuntimeStub* _ic_miss_blob;
static RuntimeStub* _resolve_opt_virtual_call_blob;
static RuntimeStub* _resolve_virtual_call_blob;
static RuntimeStub* _resolve_static_call_blob;
+#ifdef COMPILER1
+ static RuntimeStub* _resolve_profile_call_blob;
+ static RuntimeStub* _resolve_static_profile_call_blob;
+#endif
static DeoptimizationBlob* _deopt_blob;
static RicochetBlob* _ricochet_blob;
static SafepointBlob* _polling_page_safepoint_handler_blob;
@@ -197,10 +203,20 @@
static address get_ic_miss_stub() {
assert(_ic_miss_blob!= NULL, "oops");
return _ic_miss_blob->entry_point();
}
+#ifdef COMPILER1
+ static address get_resolve_profile_call_stub() {
+ assert(_resolve_profile_call_blob != NULL, "oops");
+ return _resolve_profile_call_blob->entry_point();
+ }
+ static address get_resolve_static_profile_call_stub() {
+ assert(_resolve_static_profile_call_blob != NULL, "oops");
+ return _resolve_static_profile_call_blob->entry_point();
+ }
+#endif
static address get_handle_wrong_method_stub() {
assert(_wrong_method_blob!= NULL, "oops");
return _wrong_method_blob->entry_point();
}
@@ -485,10 +501,14 @@
// Resolving of calls
static address resolve_static_call_C (JavaThread *thread);
static address resolve_virtual_call_C (JavaThread *thread);
static address resolve_opt_virtual_call_C(JavaThread *thread);
+#ifdef COMPILER1
+ static address resolve_profile_call_C (JavaThread *thread);
+ static address resolve_static_profile_call_C(JavaThread *thread);
+#endif
// arraycopy, the non-leaf version. (See StubRoutines for all the leaf calls.)
static void slow_arraycopy_C(oopDesc* src, jint src_pos,
oopDesc* dest, jint dest_pos,
jint length, JavaThread* thread);