64 bool is_aborted() { return _abort; } |
64 bool is_aborted() { return _abort; } |
65 void set_filename(char* path) {_filename = path; _lineNo = 0;} |
65 void set_filename(char* path) {_filename = path; _lineNo = 0;} |
66 }; |
66 }; |
67 |
67 |
68 class JVMCIRuntime: public AllStatic { |
68 class JVMCIRuntime: public AllStatic { |
|
69 public: |
|
70 // Constants describing whether JVMCI wants to be able to adjust the compilation |
|
71 // level selected for a method by the VM compilation policy and if so, based on |
|
72 // what information about the method being schedule for compilation. |
|
73 enum CompLevelAdjustment { |
|
74 none = 0, // no adjustment |
|
75 by_holder = 1, // adjust based on declaring class of method |
|
76 by_full_signature = 2 // adjust based on declaring class, name and signature of method |
|
77 }; |
|
78 |
69 private: |
79 private: |
70 static jobject _HotSpotJVMCIRuntime_instance; |
80 static jobject _HotSpotJVMCIRuntime_instance; |
71 static bool _HotSpotJVMCIRuntime_initialized; |
81 static bool _HotSpotJVMCIRuntime_initialized; |
72 static bool _well_known_classes_initialized; |
82 static bool _well_known_classes_initialized; |
73 |
83 |
74 static int _trivial_prefixes_count; |
84 static int _trivial_prefixes_count; |
75 static char** _trivial_prefixes; |
85 static char** _trivial_prefixes; |
76 |
86 |
|
87 static CompLevelAdjustment _comp_level_adjustment; |
|
88 |
77 static bool _shutdown_called; |
89 static bool _shutdown_called; |
78 |
90 |
79 /** |
91 static CompLevel adjust_comp_level_inner(methodHandle method, bool is_osr, CompLevel level, JavaThread* thread); |
80 * Instantiates a service object, calls its default constructor and returns it. |
|
81 * |
|
82 * @param name the name of a class implementing jdk.vm.ci.service.Service |
|
83 */ |
|
84 static Handle create_Service(const char* name, TRAPS); |
|
85 |
92 |
86 public: |
93 public: |
87 static bool is_HotSpotJVMCIRuntime_initialized() { |
94 static bool is_HotSpotJVMCIRuntime_initialized() { |
88 return _HotSpotJVMCIRuntime_initialized; |
95 return _HotSpotJVMCIRuntime_initialized; |
89 } |
96 } |
123 static bool shutdown_called() { |
130 static bool shutdown_called() { |
124 return _shutdown_called; |
131 return _shutdown_called; |
125 } |
132 } |
126 |
133 |
127 static bool treat_as_trivial(Method* method); |
134 static bool treat_as_trivial(Method* method); |
|
135 |
|
136 /** |
|
137 * Lets JVMCI modify the compilation level currently selected for a method by |
|
138 * the VM compilation policy. |
|
139 * |
|
140 * @param method the method being scheduled for compilation |
|
141 * @param is_osr specifies if the compilation is an OSR compilation |
|
142 * @param level the compilation level currently selected by the VM compilation policy |
|
143 * @param thread the current thread |
|
144 * @return the compilation level to use for the compilation |
|
145 */ |
|
146 static CompLevel adjust_comp_level(methodHandle method, bool is_osr, CompLevel level, JavaThread* thread); |
128 |
147 |
129 static BasicType kindToBasicType(Handle kind, TRAPS); |
148 static BasicType kindToBasicType(Handle kind, TRAPS); |
130 |
149 |
131 // The following routines are all called from compiled JVMCI code |
150 // The following routines are all called from compiled JVMCI code |
132 |
151 |