< prev index next >

src/hotspot/share/ci/ciMethod.hpp

Print this page
rev 47445 : 8171853: Remove Shark compiler


  79   int _handler_count;
  80   int _nmethod_age;
  81   int _interpreter_invocation_count;
  82   int _interpreter_throwout_count;
  83   int _instructions_size;
  84   int _size_of_parameters;
  85 
  86   bool _uses_monitors;
  87   bool _balanced_monitors;
  88   bool _is_c1_compilable;
  89   bool _is_c2_compilable;
  90   bool _can_be_statically_bound;
  91   bool _has_reserved_stack_access;
  92 
  93   // Lazy fields, filled in on demand
  94   address              _code;
  95   ciExceptionHandler** _exception_handlers;
  96 
  97   // Optional liveness analyzer.
  98   MethodLiveness* _liveness;
  99 #if defined(COMPILER2) || defined(SHARK)
 100   ciTypeFlow*         _flow;
 101   BCEscapeAnalyzer*   _bcea;
 102 #endif
 103 
 104   ciMethod(const methodHandle& h_m, ciInstanceKlass* holder);
 105   ciMethod(ciInstanceKlass* holder, ciSymbol* name, ciSymbol* signature, ciInstanceKlass* accessor);
 106 
 107   oop loader() const                             { return _holder->loader(); }
 108 
 109   const char* type_string()                      { return "ciMethod"; }
 110 
 111   void print_impl(outputStream* st);
 112 
 113   void load_code();
 114 
 115   bool ensure_method_data(const methodHandle& h_m);
 116 
 117   void code_at_put(int bci, Bytecodes::Code code) {
 118     Bytecodes::check(code);
 119     assert(0 <= bci && bci < code_size(), "valid bci");


 199   int highest_osr_comp_level();
 200 
 201   Bytecodes::Code java_code_at_bci(int bci) {
 202     address bcp = code() + bci;
 203     return Bytecodes::java_code_at(NULL, bcp);
 204   }
 205   Bytecodes::Code raw_code_at_bci(int bci) {
 206     address bcp = code() + bci;
 207     return Bytecodes::code_at(NULL, bcp);
 208   }
 209   BCEscapeAnalyzer  *get_bcea();
 210   ciMethodBlocks    *get_method_blocks();
 211 
 212   bool    has_linenumber_table() const;          // length unknown until decompression
 213   u_char* compressed_linenumber_table() const;   // not preserved by gc
 214 
 215   int line_number_from_bci(int bci) const;
 216 
 217   // Runtime information.
 218   int           vtable_index();
 219 #ifdef SHARK
 220   int           itable_index();
 221 #endif // SHARK
 222   address       native_entry();
 223   address       interpreter_entry();
 224 
 225   // Analysis and profiling.
 226   //
 227   // Usage note: liveness_at_bci and init_vars should be wrapped in ResourceMarks.
 228   bool          has_monitor_bytecodes() const    { return _uses_monitors; }
 229   bool          has_balanced_monitors();
 230 
 231   // Returns a bitmap indicating which locals are required to be
 232   // maintained as live for deopt.  raw_liveness_at_bci is always the
 233   // direct output of the liveness computation while liveness_at_bci
 234   // may mark all locals as live to improve support for debugging Java
 235   // code by maintaining the state of as many locals as possible.
 236   MethodLivenessResult raw_liveness_at_bci(int bci);
 237   MethodLivenessResult liveness_at_bci(int bci);
 238 
 239   // Get the interpreters viewpoint on oop liveness.  MethodLiveness is
 240   // conservative in the sense that it may consider locals to be live which
 241   // cannot be live, like in the case where a local could contain an oop or




  79   int _handler_count;
  80   int _nmethod_age;
  81   int _interpreter_invocation_count;
  82   int _interpreter_throwout_count;
  83   int _instructions_size;
  84   int _size_of_parameters;
  85 
  86   bool _uses_monitors;
  87   bool _balanced_monitors;
  88   bool _is_c1_compilable;
  89   bool _is_c2_compilable;
  90   bool _can_be_statically_bound;
  91   bool _has_reserved_stack_access;
  92 
  93   // Lazy fields, filled in on demand
  94   address              _code;
  95   ciExceptionHandler** _exception_handlers;
  96 
  97   // Optional liveness analyzer.
  98   MethodLiveness* _liveness;
  99 #if defined(COMPILER2)
 100   ciTypeFlow*         _flow;
 101   BCEscapeAnalyzer*   _bcea;
 102 #endif
 103 
 104   ciMethod(const methodHandle& h_m, ciInstanceKlass* holder);
 105   ciMethod(ciInstanceKlass* holder, ciSymbol* name, ciSymbol* signature, ciInstanceKlass* accessor);
 106 
 107   oop loader() const                             { return _holder->loader(); }
 108 
 109   const char* type_string()                      { return "ciMethod"; }
 110 
 111   void print_impl(outputStream* st);
 112 
 113   void load_code();
 114 
 115   bool ensure_method_data(const methodHandle& h_m);
 116 
 117   void code_at_put(int bci, Bytecodes::Code code) {
 118     Bytecodes::check(code);
 119     assert(0 <= bci && bci < code_size(), "valid bci");


 199   int highest_osr_comp_level();
 200 
 201   Bytecodes::Code java_code_at_bci(int bci) {
 202     address bcp = code() + bci;
 203     return Bytecodes::java_code_at(NULL, bcp);
 204   }
 205   Bytecodes::Code raw_code_at_bci(int bci) {
 206     address bcp = code() + bci;
 207     return Bytecodes::code_at(NULL, bcp);
 208   }
 209   BCEscapeAnalyzer  *get_bcea();
 210   ciMethodBlocks    *get_method_blocks();
 211 
 212   bool    has_linenumber_table() const;          // length unknown until decompression
 213   u_char* compressed_linenumber_table() const;   // not preserved by gc
 214 
 215   int line_number_from_bci(int bci) const;
 216 
 217   // Runtime information.
 218   int           vtable_index();



 219   address       native_entry();
 220   address       interpreter_entry();
 221 
 222   // Analysis and profiling.
 223   //
 224   // Usage note: liveness_at_bci and init_vars should be wrapped in ResourceMarks.
 225   bool          has_monitor_bytecodes() const    { return _uses_monitors; }
 226   bool          has_balanced_monitors();
 227 
 228   // Returns a bitmap indicating which locals are required to be
 229   // maintained as live for deopt.  raw_liveness_at_bci is always the
 230   // direct output of the liveness computation while liveness_at_bci
 231   // may mark all locals as live to improve support for debugging Java
 232   // code by maintaining the state of as many locals as possible.
 233   MethodLivenessResult raw_liveness_at_bci(int bci);
 234   MethodLivenessResult liveness_at_bci(int bci);
 235 
 236   // Get the interpreters viewpoint on oop liveness.  MethodLiveness is
 237   // conservative in the sense that it may consider locals to be live which
 238   // cannot be live, like in the case where a local could contain an oop or


< prev index next >