82 // Do policy initialization |
82 // Do policy initialization |
83 virtual void initialize() = 0; |
83 virtual void initialize() = 0; |
84 virtual bool should_not_inline(ciEnv* env, ciMethod* method) { return false; } |
84 virtual bool should_not_inline(ciEnv* env, ciMethod* method) { return false; } |
85 }; |
85 }; |
86 |
86 |
87 // A base class for baseline policies. |
87 // A simple compilation policy. |
88 class NonTieredCompPolicy : public CompilationPolicy { |
88 class SimpleCompPolicy : public CompilationPolicy { |
89 int _compiler_count; |
89 int _compiler_count; |
90 protected: |
90 private: |
91 static void trace_frequency_counter_overflow(const methodHandle& m, int branch_bci, int bci); |
91 static void trace_frequency_counter_overflow(const methodHandle& m, int branch_bci, int bci); |
92 static void trace_osr_request(const methodHandle& method, nmethod* osr, int bci); |
92 static void trace_osr_request(const methodHandle& method, nmethod* osr, int bci); |
93 static void trace_osr_completion(nmethod* osr_nm); |
93 static void trace_osr_completion(nmethod* osr_nm); |
94 void reset_counter_for_invocation_event(const methodHandle& method); |
94 void reset_counter_for_invocation_event(const methodHandle& method); |
95 void reset_counter_for_back_branch_event(const methodHandle& method); |
95 void reset_counter_for_back_branch_event(const methodHandle& method); |
96 public: |
96 void method_invocation_event(const methodHandle& m, JavaThread* thread); |
97 NonTieredCompPolicy() : _compiler_count(0) { } |
97 void method_back_branch_event(const methodHandle& m, int bci, JavaThread* thread); |
|
98 public: |
|
99 SimpleCompPolicy() : _compiler_count(0) { } |
98 virtual CompLevel initial_compile_level() { return CompLevel_highest_tier; } |
100 virtual CompLevel initial_compile_level() { return CompLevel_highest_tier; } |
99 virtual int compiler_count(CompLevel comp_level); |
101 virtual int compiler_count(CompLevel comp_level); |
100 virtual void do_safepoint_work(); |
102 virtual void do_safepoint_work(); |
101 virtual void reprofile(ScopeDesc* trap_scope, bool is_osr); |
103 virtual void reprofile(ScopeDesc* trap_scope, bool is_osr); |
102 virtual void delay_compilation(Method* method); |
104 virtual void delay_compilation(Method* method); |
103 virtual void disable_compilation(Method* method); |
105 virtual void disable_compilation(Method* method); |
104 virtual bool is_mature(Method* method); |
106 virtual bool is_mature(Method* method); |
105 virtual void initialize(); |
107 virtual void initialize(); |
106 virtual CompileTask* select_task(CompileQueue* compile_queue); |
108 virtual CompileTask* select_task(CompileQueue* compile_queue); |
107 virtual nmethod* event(const methodHandle& method, const methodHandle& inlinee, int branch_bci, int bci, CompLevel comp_level, CompiledMethod* nm, JavaThread* thread); |
109 virtual nmethod* event(const methodHandle& method, const methodHandle& inlinee, int branch_bci, int bci, CompLevel comp_level, CompiledMethod* nm, JavaThread* thread); |
108 virtual void method_invocation_event(const methodHandle& m, JavaThread* thread) = 0; |
|
109 virtual void method_back_branch_event(const methodHandle& m, int bci, JavaThread* thread) = 0; |
|
110 }; |
110 }; |
111 |
111 |
112 class SimpleCompPolicy : public NonTieredCompPolicy { |
|
113 public: |
|
114 virtual void method_invocation_event(const methodHandle& m, JavaThread* thread); |
|
115 virtual void method_back_branch_event(const methodHandle& m, int bci, JavaThread* thread); |
|
116 }; |
|
117 |
112 |
118 #endif // SHARE_RUNTIME_COMPILATIONPOLICY_HPP |
113 #endif // SHARE_RUNTIME_COMPILATIONPOLICY_HPP |