195 // If a method is old enough and is still in the interpreter we would want to |
195 // If a method is old enough and is still in the interpreter we would want to |
196 // start profiling without waiting for the compiled method to arrive. This function |
196 // start profiling without waiting for the compiled method to arrive. This function |
197 // determines whether we should do that. |
197 // determines whether we should do that. |
198 inline bool should_create_mdo(methodOop method, CompLevel cur_level); |
198 inline bool should_create_mdo(methodOop method, CompLevel cur_level); |
199 // Create MDO if necessary. |
199 // Create MDO if necessary. |
200 void create_mdo(methodHandle mh, TRAPS); |
200 void create_mdo(methodHandle mh, JavaThread* thread); |
201 // Is method profiled enough? |
201 // Is method profiled enough? |
202 bool is_method_profiled(methodOop method); |
202 bool is_method_profiled(methodOop method); |
203 |
203 |
204 protected: |
204 protected: |
205 void print_specific(EventType type, methodHandle mh, methodHandle imh, int bci, CompLevel level); |
205 void print_specific(EventType type, methodHandle mh, methodHandle imh, int bci, CompLevel level); |
206 |
206 |
207 void set_start_time(jlong t) { _start_time = t; } |
207 void set_start_time(jlong t) { _start_time = t; } |
208 jlong start_time() const { return _start_time; } |
208 jlong start_time() const { return _start_time; } |
209 |
209 |
210 // Submit a given method for compilation (and update the rate). |
210 // Submit a given method for compilation (and update the rate). |
211 virtual void submit_compile(methodHandle mh, int bci, CompLevel level, TRAPS); |
211 virtual void submit_compile(methodHandle mh, int bci, CompLevel level, JavaThread* thread); |
212 // event() from SimpleThresholdPolicy would call these. |
212 // event() from SimpleThresholdPolicy would call these. |
213 virtual void method_invocation_event(methodHandle method, methodHandle inlinee, |
213 virtual void method_invocation_event(methodHandle method, methodHandle inlinee, |
214 CompLevel level, nmethod* nm, TRAPS); |
214 CompLevel level, nmethod* nm, JavaThread* thread); |
215 virtual void method_back_branch_event(methodHandle method, methodHandle inlinee, |
215 virtual void method_back_branch_event(methodHandle method, methodHandle inlinee, |
216 int bci, CompLevel level, nmethod* nm, TRAPS); |
216 int bci, CompLevel level, nmethod* nm, JavaThread* thread); |
217 public: |
217 public: |
218 AdvancedThresholdPolicy() : _start_time(0) { } |
218 AdvancedThresholdPolicy() : _start_time(0) { } |
219 // Select task is called by CompileBroker. We should return a task or NULL. |
219 // Select task is called by CompileBroker. We should return a task or NULL. |
220 virtual CompileTask* select_task(CompileQueue* compile_queue); |
220 virtual CompileTask* select_task(CompileQueue* compile_queue); |
221 virtual void initialize(); |
221 virtual void initialize(); |