src/share/vm/compiler/compileBroker.hpp

Print this page

        

*** 211,222 **** bool is_empty() const { return _first == NULL; } int size() const { return _size; } // Redefine Classes support void mark_on_stack(); ! void print(); }; // CompileTaskWrapper // // Assign this task to the current thread. Deallocate the task --- 211,226 ---- bool is_empty() const { return _first == NULL; } int size() const { return _size; } // Redefine Classes support void mark_on_stack(); ! void delete_all(); void print(); + + ~CompileQueue() { + assert (is_empty(), " Compile Queue must be empty"); + } }; // CompileTaskWrapper // // Assign this task to the current thread. Deallocate the task
*** 264,274 **** static CompileQueue* _c2_method_queue; static CompileQueue* _c1_method_queue; static CompileTask* _task_free_list; ! static GrowableArray<CompilerThread*>* _method_threads; // performance counters static PerfCounter* _perf_total_compilation; static PerfCounter* _perf_native_compilation; static PerfCounter* _perf_osr_compilation; --- 268,278 ---- static CompileQueue* _c2_method_queue; static CompileQueue* _c1_method_queue; static CompileTask* _task_free_list; ! static GrowableArray<CompilerThread*>* _compiler_threads; // performance counters static PerfCounter* _perf_total_compilation; static PerfCounter* _perf_native_compilation; static PerfCounter* _perf_osr_compilation;
*** 309,319 **** static int _sum_standard_bytes_compiled; static int _sum_nmethod_size; static int _sum_nmethod_code_size; static long _peak_compilation_time; ! static CompilerThread* make_compiler_thread(const char* name, CompileQueue* queue, CompilerCounters* counters, TRAPS); static void init_compiler_threads(int c1_compiler_count, int c2_compiler_count); static bool compilation_is_complete (methodHandle method, int osr_bci, int comp_level); static bool compilation_is_prohibited(methodHandle method, int osr_bci, int comp_level); static uint assign_compile_id (methodHandle method, int osr_bci); static bool is_compile_blocking (methodHandle method, int osr_bci); --- 313,323 ---- static int _sum_standard_bytes_compiled; static int _sum_nmethod_size; static int _sum_nmethod_code_size; static long _peak_compilation_time; ! static CompilerThread* make_compiler_thread(const char* name, CompileQueue* queue, CompilerCounters* counters, AbstractCompiler* comp, TRAPS); static void init_compiler_threads(int c1_compiler_count, int c2_compiler_count); static bool compilation_is_complete (methodHandle method, int osr_bci, int comp_level); static bool compilation_is_prohibited(methodHandle method, int osr_bci, int comp_level); static uint assign_compile_id (methodHandle method, int osr_bci); static bool is_compile_blocking (methodHandle method, int osr_bci);
*** 349,358 **** --- 353,365 ---- static CompileQueue* compile_queue(int comp_level) { if (is_c2_compile(comp_level)) return _c2_method_queue; if (is_c1_compile(comp_level)) return _c1_method_queue; return NULL; } + static bool init_compiler_runtime(); + static void shutdown_compiler_runtime(AbstractCompiler* comp, CompilerThread* thread); + public: enum { // The entry bci used for non-OSR compilations. standard_entry_bci = InvocationEntryBci };
*** 376,388 **** methodHandle hot_method, int hot_count, const char* comment, Thread* thread); static void compiler_thread_loop(); - static uint get_compilation_id() { return _compilation_id; } - static bool is_idle(); // Set _should_block. // Call this from the VM, with Threads_lock held and a safepoint requested. static void set_should_block(); --- 383,393 ----
*** 390,408 **** static void maybe_block(); enum { // Flags for toggling compiler activity stop_compilation = 0, ! run_compilation = 1 }; static bool should_compile_new_jobs() { return UseCompiler && (_should_compile_new_jobs == run_compilation); } static bool set_should_compile_new_jobs(jint new_state) { // Return success if the current caller set it jint old = Atomic::cmpxchg(new_state, &_should_compile_new_jobs, 1-new_state); return (old == (1-new_state)); } static void handle_full_code_cache(); // Return total compilation ticks static jlong total_compilation_ticks() { return _perf_total_compilation != NULL ? _perf_total_compilation->get_value() : 0; --- 395,424 ---- static void maybe_block(); enum { // Flags for toggling compiler activity stop_compilation = 0, ! run_compilation = 1, ! shutdown_compilaton = 2 }; static bool should_compile_new_jobs() { return UseCompiler && (_should_compile_new_jobs == run_compilation); } static bool set_should_compile_new_jobs(jint new_state) { // Return success if the current caller set it jint old = Atomic::cmpxchg(new_state, &_should_compile_new_jobs, 1-new_state); return (old == (1-new_state)); } + + static void disable_compilation_forever() { + UseCompiler = false; + AlwaysCompileLoopMethods = false; + Atomic::xchg(shutdown_compilaton, &_should_compile_new_jobs); + } + + static bool is_compilation_disabled_forever() { + return _should_compile_new_jobs == shutdown_compilaton; + } static void handle_full_code_cache(); // Return total compilation ticks static jlong total_compilation_ticks() { return _perf_total_compilation != NULL ? _perf_total_compilation->get_value() : 0;