src/hotspot/share/runtime/compilationPolicy.hpp
changeset 58398 ff559f979c4b
parent 58367 b3ca57ddfc92
equal deleted inserted replaced
58397:2d40e6a7ce8e 58398:ff559f979c4b
    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