src/share/vm/compiler/compileBroker.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/compiler/compileBroker.hpp	Tue Sep 22 16:26:53 2015
--- new/src/share/vm/compiler/compileBroker.hpp	Tue Sep 22 16:26:53 2015

*** 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 **** --- 264,273 ---- 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,
*** 259,269 **** --- 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