174 /**
175 * Aborts the VM due to an unexpected exception.
176 */
177 void JVMCICompiler::abort_on_pending_exception(Handle exception, const char* message, bool dump_core) {
178 Thread* THREAD = Thread::current();
179 CLEAR_PENDING_EXCEPTION;
180
181 java_lang_Throwable::java_printStackTrace(exception, THREAD);
182
183 // Give other aborting threads to also print their stack traces.
184 // This can be very useful when debugging class initialization
185 // failures.
186 assert(THREAD->is_Java_thread(), "compiler threads should be Java threads");
187 const bool interruptible = true;
188 os::sleep(THREAD, 200, interruptible);
189
190 vm_abort(dump_core);
191 }
192
193 // Compilation entry point for methods
194 void JVMCICompiler::compile_method(ciEnv* env, ciMethod* target, int entry_bci, DirectiveSet* directive) {
195 ShouldNotReachHere();
196 }
197
198 bool JVMCICompiler::is_trivial(Method* method) {
199 if (_bootstrapping) {
200 return false;
201 }
202 return JVMCIRuntime::treat_as_trivial(method);
203 }
204
205 // Print compilation timers and statistics
206 void JVMCICompiler::print_timers() {
207 print_compilation_timers();
208 }
209
210 // Print compilation timers and statistics
211 void JVMCICompiler::print_compilation_timers() {
212 TRACE_jvmci_1("JVMCICompiler::print_timers");
213 tty->print_cr(" JVMCI code install time: %6.3f s", _codeInstallTimer.seconds());
214 }
|
174 /**
175 * Aborts the VM due to an unexpected exception.
176 */
177 void JVMCICompiler::abort_on_pending_exception(Handle exception, const char* message, bool dump_core) {
178 Thread* THREAD = Thread::current();
179 CLEAR_PENDING_EXCEPTION;
180
181 java_lang_Throwable::java_printStackTrace(exception, THREAD);
182
183 // Give other aborting threads to also print their stack traces.
184 // This can be very useful when debugging class initialization
185 // failures.
186 assert(THREAD->is_Java_thread(), "compiler threads should be Java threads");
187 const bool interruptible = true;
188 os::sleep(THREAD, 200, interruptible);
189
190 vm_abort(dump_core);
191 }
192
193 // Compilation entry point for methods
194 void JVMCICompiler::compile_method(ciEnv* env, ciMethod* target, int entry_bci) {
195 ShouldNotReachHere();
196 }
197
198 bool JVMCICompiler::is_trivial(Method* method) {
199 if (_bootstrapping) {
200 return false;
201 }
202 return JVMCIRuntime::treat_as_trivial(method);
203 }
204
205 // Print compilation timers and statistics
206 void JVMCICompiler::print_timers() {
207 print_compilation_timers();
208 }
209
210 // Print compilation timers and statistics
211 void JVMCICompiler::print_compilation_timers() {
212 TRACE_jvmci_1("JVMCICompiler::print_timers");
213 tty->print_cr(" JVMCI code install time: %6.3f s", _codeInstallTimer.seconds());
214 }
|