Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/compilationPolicy.cpp @ 22762:9d78d44d3aac
improved JVMCI support for blocking compilation (GRAAL-1387)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 08 Jan 2016 17:30:33 +0100 |
parents | be896a1983c0 |
children | 94b7354ef0e0 |
comparison
equal
deleted
inserted
replaced
22761:f2206f5bb62e | 22762:9d78d44d3aac |
---|---|
158 bool CompilationPolicy::is_compilation_enabled() { | 158 bool CompilationPolicy::is_compilation_enabled() { |
159 // NOTE: CompileBroker::should_compile_new_jobs() checks for UseCompiler | 159 // NOTE: CompileBroker::should_compile_new_jobs() checks for UseCompiler |
160 return !delay_compilation_during_startup() && CompileBroker::should_compile_new_jobs(); | 160 return !delay_compilation_during_startup() && CompileBroker::should_compile_new_jobs(); |
161 } | 161 } |
162 | 162 |
163 #ifdef COMPILERJVMCI | |
164 CompileTask* CompilationPolicy::select_task_blocking_aware(CompileQueue* compile_queue) { | |
165 if (!BackgroundCompilation) { | |
166 for (CompileTask* task = compile_queue->first(); task != NULL; task = task->next()) { | |
167 if (task->is_blocking()) { | |
168 return task; | |
169 } | |
170 } | |
171 } | |
172 return compile_queue->first(); | |
173 } | |
174 #endif | |
175 | |
163 #ifndef PRODUCT | 176 #ifndef PRODUCT |
164 void CompilationPolicy::print_time() { | 177 void CompilationPolicy::print_time() { |
165 tty->print_cr ("Accumulated compilationPolicy times:"); | 178 tty->print_cr ("Accumulated compilationPolicy times:"); |
166 tty->print_cr ("---------------------------"); | 179 tty->print_cr ("---------------------------"); |
167 tty->print_cr (" Total: %3.3f sec.", _accumulated_time.seconds()); | 180 tty->print_cr (" Total: %3.3f sec.", _accumulated_time.seconds()); |
338 mcs->backedge_counter()->set_state(InvocationCounter::wait_for_nothing); | 351 mcs->backedge_counter()->set_state(InvocationCounter::wait_for_nothing); |
339 } | 352 } |
340 } | 353 } |
341 | 354 |
342 CompileTask* NonTieredCompPolicy::select_task(CompileQueue* compile_queue) { | 355 CompileTask* NonTieredCompPolicy::select_task(CompileQueue* compile_queue) { |
356 COMPILERJVMCI_PRESENT(return select_task_blocking_aware(compile_queue);) | |
343 return compile_queue->first(); | 357 return compile_queue->first(); |
344 } | 358 } |
345 | 359 |
346 bool NonTieredCompPolicy::is_mature(Method* method) { | 360 bool NonTieredCompPolicy::is_mature(Method* method) { |
347 MethodData* mdo = method->method_data(); | 361 MethodData* mdo = method->method_data(); |