< prev index next >

src/share/vm/jvmci/jvmciRuntime.hpp

Print this page

        

*** 64,89 **** bool is_aborted() { return _abort; } void set_filename(char* path) {_filename = path; _lineNo = 0;} }; class JVMCIRuntime: public AllStatic { private: static jobject _HotSpotJVMCIRuntime_instance; static bool _HotSpotJVMCIRuntime_initialized; static bool _well_known_classes_initialized; static int _trivial_prefixes_count; static char** _trivial_prefixes; static bool _shutdown_called; ! /** ! * Instantiates a service object, calls its default constructor and returns it. ! * ! * @param name the name of a class implementing jdk.vm.ci.service.Service ! */ ! static Handle create_Service(const char* name, TRAPS); public: static bool is_HotSpotJVMCIRuntime_initialized() { return _HotSpotJVMCIRuntime_initialized; } --- 64,96 ---- bool is_aborted() { return _abort; } void set_filename(char* path) {_filename = path; _lineNo = 0;} }; class JVMCIRuntime: public AllStatic { + public: + // Constants describing whether JVMCI wants to be able to adjust the compilation + // level selected for a method by the VM compilation policy and if so, based on + // what information about the method being schedule for compilation. + enum CompLevelAdjustment { + none = 0, // no adjustment + by_holder = 1, // adjust based on declaring class of method + by_full_signature = 2 // adjust based on declaring class, name and signature of method + }; + private: static jobject _HotSpotJVMCIRuntime_instance; static bool _HotSpotJVMCIRuntime_initialized; static bool _well_known_classes_initialized; static int _trivial_prefixes_count; static char** _trivial_prefixes; + static CompLevelAdjustment _comp_level_adjustment; + static bool _shutdown_called; ! static CompLevel adjust_comp_level_inner(methodHandle method, bool is_osr, CompLevel level, JavaThread* thread); public: static bool is_HotSpotJVMCIRuntime_initialized() { return _HotSpotJVMCIRuntime_initialized; }
*** 124,133 **** --- 131,152 ---- return _shutdown_called; } static bool treat_as_trivial(Method* method); + /** + * Lets JVMCI modify the compilation level currently selected for a method by + * the VM compilation policy. + * + * @param method the method being scheduled for compilation + * @param is_osr specifies if the compilation is an OSR compilation + * @param level the compilation level currently selected by the VM compilation policy + * @param thread the current thread + * @return the compilation level to use for the compilation + */ + static CompLevel adjust_comp_level(methodHandle method, bool is_osr, CompLevel level, JavaThread* thread); + static BasicType kindToBasicType(Handle kind, TRAPS); // The following routines are all called from compiled JVMCI code static void new_instance(JavaThread* thread, Klass* klass);
< prev index next >