src/share/vm/compiler/compileBroker.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/compiler/compileBroker.hpp

src/share/vm/compiler/compileBroker.hpp

Print this page
rev 8995 : 8046155: JEP165: Compiler Control
Summary:
Reviewed-by:

*** 27,36 **** --- 27,37 ---- #include "ci/compilerInterface.hpp" #include "compiler/abstractCompiler.hpp" #include "compiler/compileTask.hpp" #include "runtime/perfData.hpp" + #include "utilities/stack.hpp" class nmethod; class nmethodLocker; // CompilerCounters
*** 136,145 **** --- 137,162 ---- public: CompileTaskWrapper(CompileTask* task); ~CompileTaskWrapper(); }; + class DirectivesStack : public CHeapObj<mtCompiler> { + private: + CompilerDirectives* _top; + CompilerDirectives* _bottom; + int _depth; + + void pop_inner(); // no lock version of pop + public: + DirectivesStack(); + DirectiveSet* peak(AbstractCompiler* comp); + void push(CompilerDirectives* directive); + void pop(); + void clear(); + DirectiveSet* getMatchingDirective(methodHandle mh, int comp_level); + void print(outputStream* st); + }; // Compilation // // The broker for all compilation requests. class CompileBroker: AllStatic {
*** 164,173 **** --- 181,193 ---- static volatile jint _should_compile_new_jobs; // The installed compiler(s) static AbstractCompiler* _compilers[2]; + // The directives stack + static DirectivesStack* _dirstack; + // These counters are used for assigning id's to each compilation static volatile jint _compilation_id; static volatile jint _osr_compilation_id; static int _last_compile_type;
*** 244,254 **** static void invoke_compiler_on_method(CompileTask* task); static void set_last_compile(CompilerThread *thread, methodHandle method, bool is_osr, int comp_level); static void push_jni_handle_block(); static void pop_jni_handle_block(); - static bool check_break_at(methodHandle method, int compile_id, bool is_osr); static void collect_statistics(CompilerThread* thread, elapsedTimer time, CompileTask* task); static void compile_method_base(methodHandle method, int osr_bci, int comp_level, --- 264,273 ----
*** 259,269 **** static CompileQueue* compile_queue(int comp_level); 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 }; --- 278,292 ---- static CompileQueue* compile_queue(int comp_level); static bool init_compiler_runtime(); static void shutdown_compiler_runtime(AbstractCompiler* comp, CompilerThread* thread); ! public: ! ! static DirectivesStack* dirstack(); ! static void set_dirstack(DirectivesStack* stack); ! enum { // The entry bci used for non-OSR compilations. standard_entry_bci = InvocationEntryBci };
*** 273,282 **** --- 296,306 ---- return NULL; } static bool compilation_is_in_queue(methodHandle method); static void print_compile_queues(outputStream* st); + static void print_directives(outputStream* st); static int queue_size(int comp_level) { CompileQueue *q = compile_queue(comp_level); return q != NULL ? q->size() : 0; } static void compilation_init();
src/share/vm/compiler/compileBroker.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File