hotspot/src/share/vm/oops/methodOop.hpp
changeset 8667 b32929355d27
parent 8313 06ce193c8a5f
child 8674 303a2149d371
equal deleted inserted replaced
8499:4f77360820d7 8667:b32929355d27
    82 // | num_breakpoints         |  (unused)                  |
    82 // | num_breakpoints         |  (unused)                  |
    83 // |------------------------------------------------------|
    83 // |------------------------------------------------------|
    84 // | invocation_counter                                   |
    84 // | invocation_counter                                   |
    85 // | backedge_counter                                     |
    85 // | backedge_counter                                     |
    86 // |------------------------------------------------------|
    86 // |------------------------------------------------------|
       
    87 // |           prev_time (tiered only, 64 bit wide)       |
       
    88 // |                                                      |
       
    89 // |------------------------------------------------------|
       
    90 // |                  rate (tiered)                       |
       
    91 // |------------------------------------------------------|
    87 // | code                           (pointer)             |
    92 // | code                           (pointer)             |
    88 // | i2i                            (pointer)             |
    93 // | i2i                            (pointer)             |
    89 // | adapter                        (pointer)             |
    94 // | adapter                        (pointer)             |
    90 // | from_compiled_entry            (pointer)             |
    95 // | from_compiled_entry            (pointer)             |
    91 // | from_interpreted_entry         (pointer)             |
    96 // | from_interpreted_entry         (pointer)             |
   122   u2                _interpreter_throwout_count; // Count of times method was exited via exception while interpreting
   127   u2                _interpreter_throwout_count; // Count of times method was exited via exception while interpreting
   123   u2                _number_of_breakpoints;      // fullspeed debugging support
   128   u2                _number_of_breakpoints;      // fullspeed debugging support
   124   InvocationCounter _invocation_counter;         // Incremented before each activation of the method - used to trigger frequency-based optimizations
   129   InvocationCounter _invocation_counter;         // Incremented before each activation of the method - used to trigger frequency-based optimizations
   125   InvocationCounter _backedge_counter;           // Incremented before each backedge taken - used to trigger frequencey-based optimizations
   130   InvocationCounter _backedge_counter;           // Incremented before each backedge taken - used to trigger frequencey-based optimizations
   126 
   131 
       
   132 #ifdef TIERED
       
   133   jlong             _prev_time;                   // Previous time the rate was acquired
       
   134   float             _rate;                        // Events (invocation and backedge counter increments) per millisecond
       
   135 #endif
       
   136 
   127 #ifndef PRODUCT
   137 #ifndef PRODUCT
   128   int               _compiled_invocation_count;  // Number of nmethod invocations so far (for perf. debugging)
   138   int               _compiled_invocation_count;  // Number of nmethod invocations so far (for perf. debugging)
   129 #endif
   139 #endif
   130   // Entry point for calling both from and to the interpreter.
   140   // Entry point for calling both from and to the interpreter.
   131   address _i2i_entry;           // All-args-on-stack calling convention
   141   address _i2i_entry;           // All-args-on-stack calling convention
   301   }
   311   }
   302 
   312 
   303   // invocation counter
   313   // invocation counter
   304   InvocationCounter* invocation_counter() { return &_invocation_counter; }
   314   InvocationCounter* invocation_counter() { return &_invocation_counter; }
   305   InvocationCounter* backedge_counter()   { return &_backedge_counter; }
   315   InvocationCounter* backedge_counter()   { return &_backedge_counter; }
       
   316 
       
   317 #ifdef TIERED
       
   318   // We are reusing interpreter_invocation_count as a holder for the previous event count!
       
   319   // We can do that since interpreter_invocation_count is not used in tiered.
       
   320   int prev_event_count() const                   { return _interpreter_invocation_count;  }
       
   321   void set_prev_event_count(int count)           { _interpreter_invocation_count = count; }
       
   322   jlong prev_time() const                        { return _prev_time; }
       
   323   void set_prev_time(jlong time)                 { _prev_time = time; }
       
   324   float rate() const                             { return _rate; }
       
   325   void set_rate(float rate)                      { _rate = rate; }
       
   326 #endif
   306 
   327 
   307   int invocation_count();
   328   int invocation_count();
   308   int backedge_count();
   329   int backedge_count();
   309 
   330 
   310   bool was_executed_more_than(int n);
   331   bool was_executed_more_than(int n);