1.1 --- a/src/share/vm/opto/compile.hpp Tue Jan 08 11:30:51 2013 -0800 1.2 +++ b/src/share/vm/opto/compile.hpp Wed Jan 09 15:37:23 2013 -0800 1.3 @@ -72,6 +72,7 @@ 1.4 class JVMState; 1.5 class TypeData; 1.6 class TypePtr; 1.7 +class TypeOopPtr; 1.8 class TypeFunc; 1.9 class Unique_Node_List; 1.10 class nmethod; 1.11 @@ -740,9 +741,17 @@ 1.12 1.13 // Decide how to build a call. 1.14 // The profile factor is a discount to apply to this site's interp. profile. 1.15 - CallGenerator* call_generator(ciMethod* call_method, int vtable_index, bool call_is_virtual, JVMState* jvms, bool allow_inline, float profile_factor, bool allow_intrinsics = true, bool delayed_forbidden = false); 1.16 + CallGenerator* call_generator(ciMethod* call_method, int vtable_index, bool call_does_dispatch, JVMState* jvms, bool allow_inline, float profile_factor, bool allow_intrinsics = true, bool delayed_forbidden = false); 1.17 bool should_delay_inlining(ciMethod* call_method, JVMState* jvms); 1.18 1.19 + // Helper functions to identify inlining potential at call-site 1.20 + ciMethod* optimize_virtual_call(ciMethod* caller, int bci, ciInstanceKlass* klass, 1.21 + ciMethod* callee, const TypeOopPtr* receiver_type, 1.22 + bool is_virtual, 1.23 + bool &call_does_dispatch, int &vtable_index); 1.24 + ciMethod* optimize_inlining(ciMethod* caller, int bci, ciInstanceKlass* klass, 1.25 + ciMethod* callee, const TypeOopPtr* receiver_type); 1.26 + 1.27 // Report if there were too many traps at a current method and bci. 1.28 // Report if a trap was recorded, and/or PerMethodTrapLimit was exceeded. 1.29 // If there is no MDO at all, report no trap unless told to assume it.