< prev index next >

src/hotspot/share/ci/ciMethod.hpp

Print this page




 198   int comp_level();
 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


 327   bool is_native      () const                   { return flags().is_native(); }
 328   bool is_interface   () const                   { return flags().is_interface(); }
 329   bool is_abstract    () const                   { return flags().is_abstract(); }
 330   bool is_strict      () const                   { return flags().is_strict(); }
 331 
 332   // Other flags
 333   bool is_empty_method() const;
 334   bool is_vanilla_constructor() const;
 335   bool is_final_method() const                   { return is_final() || holder()->is_final(); }
 336   bool has_loops      () const;
 337   bool has_jsrs       () const;
 338   bool is_getter      () const;
 339   bool is_setter      () const;
 340   bool is_accessor    () const;
 341   bool is_initializer () const;
 342   bool can_be_statically_bound() const           { return _can_be_statically_bound; }
 343   bool has_reserved_stack_access() const         { return _has_reserved_stack_access; }
 344   bool is_boxing_method() const;
 345   bool is_unboxing_method() const;
 346   bool is_object_initializer() const;

 347 
 348   // Replay data methods
 349   void dump_name_as_ascii(outputStream* st);
 350   void dump_replay_data(outputStream* st);
 351 
 352   // Print the bytecodes of this method.
 353   void print_codes_on(outputStream* st);
 354   void print_codes() {
 355     print_codes_on(tty);
 356   }
 357   void print_codes_on(int from, int to, outputStream* st);
 358 
 359   // Print the name of this method in various incarnations.
 360   void print_name(outputStream* st = tty);
 361   void print_short_name(outputStream* st = tty);
 362 
 363   static bool is_consistent_info(ciMethod* declared_method, ciMethod* resolved_method);
 364 };
 365 
 366 #endif // SHARE_VM_CI_CIMETHOD_HPP


 198   int comp_level();
 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() const;
 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


 327   bool is_native      () const                   { return flags().is_native(); }
 328   bool is_interface   () const                   { return flags().is_interface(); }
 329   bool is_abstract    () const                   { return flags().is_abstract(); }
 330   bool is_strict      () const                   { return flags().is_strict(); }
 331 
 332   // Other flags
 333   bool is_empty_method() const;
 334   bool is_vanilla_constructor() const;
 335   bool is_final_method() const                   { return is_final() || holder()->is_final(); }
 336   bool has_loops      () const;
 337   bool has_jsrs       () const;
 338   bool is_getter      () const;
 339   bool is_setter      () const;
 340   bool is_accessor    () const;
 341   bool is_initializer () const;
 342   bool can_be_statically_bound() const           { return _can_be_statically_bound; }
 343   bool has_reserved_stack_access() const         { return _has_reserved_stack_access; }
 344   bool is_boxing_method() const;
 345   bool is_unboxing_method() const;
 346   bool is_object_initializer() const;
 347   bool is_object_equals() const;
 348 
 349   // Replay data methods
 350   void dump_name_as_ascii(outputStream* st);
 351   void dump_replay_data(outputStream* st);
 352 
 353   // Print the bytecodes of this method.
 354   void print_codes_on(outputStream* st);
 355   void print_codes() {
 356     print_codes_on(tty);
 357   }
 358   void print_codes_on(int from, int to, outputStream* st);
 359 
 360   // Print the name of this method in various incarnations.
 361   void print_name(outputStream* st = tty);
 362   void print_short_name(outputStream* st = tty);
 363 
 364   static bool is_consistent_info(ciMethod* declared_method, ciMethod* resolved_method);
 365 };
 366 
 367 #endif // SHARE_VM_CI_CIMETHOD_HPP
< prev index next >