src/share/vm/ci/ciMethod.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/ci

src/share/vm/ci/ciMethod.hpp

Print this page
rev 7652 : 8063137: Never-taken branches should be pruned when GWT LambdaForms are shared
Reviewed-by: ?
rev 7653 : [mq]: branch.freq.1
rev 7654 : [mq]: branch.freq.2
rev 7655 : [mq]: branch.freq.3


  62   ciMethodData*    _method_data;
  63   ciMethodBlocks*   _method_blocks;
  64 
  65   // Code attributes.
  66   int _code_size;
  67   int _max_stack;
  68   int _max_locals;
  69   vmIntrinsics::ID _intrinsic_id;
  70   int _handler_count;
  71   int _nmethod_age;
  72   int _interpreter_invocation_count;
  73   int _interpreter_throwout_count;
  74   int _instructions_size;
  75   int _size_of_parameters;
  76 
  77   bool _uses_monitors;
  78   bool _balanced_monitors;
  79   bool _is_c1_compilable;
  80   bool _is_c2_compilable;
  81   bool _can_be_statically_bound;

  82 
  83   // Lazy fields, filled in on demand
  84   address              _code;
  85   ciExceptionHandler** _exception_handlers;
  86 
  87   // Optional liveness analyzer.
  88   MethodLiveness* _liveness;
  89 #if defined(COMPILER2) || defined(SHARK)
  90   ciTypeFlow*         _flow;
  91   BCEscapeAnalyzer*   _bcea;
  92 #endif
  93 
  94   ciMethod(methodHandle h_m, ciInstanceKlass* holder);
  95   ciMethod(ciInstanceKlass* holder, ciSymbol* name, ciSymbol* signature, ciInstanceKlass* accessor);
  96 
  97   Method* get_Method() const {
  98     Method* m = (Method*)_metadata;
  99     assert(m != NULL, "illegal use of unloaded method");
 100     return m;
 101   }


 269   bool should_print_assembly();
 270   bool break_at_execute();
 271   bool has_option(const char *option);
 272   template<typename T>
 273   bool has_option_value(const char* option, T& value);
 274   bool can_be_compiled();
 275   bool can_be_osr_compiled(int entry_bci);
 276   void set_not_compilable(const char* reason = NULL);
 277   bool has_compiled_code();
 278   void log_nmethod_identity(xmlStream* log);
 279   bool is_not_reached(int bci);
 280   bool was_executed_more_than(int times);
 281   bool has_unloaded_classes_in_signature();
 282   bool is_klass_loaded(int refinfo_index, bool must_be_resolved) const;
 283   bool check_call(int refinfo_index, bool is_static) const;
 284   bool ensure_method_data();  // make sure it exists in the VM also
 285   MethodCounters* ensure_method_counters();
 286   int instructions_size();
 287   int scale_count(int count, float prof_factor = 1.);  // make MDO count commensurate with IIC
 288 



 289   // Stack walking support
 290   bool is_ignored_by_security_stack_walk() const;
 291 
 292   // JSR 292 support
 293   bool is_method_handle_intrinsic()  const;
 294   bool is_compiled_lambda_form() const;
 295   bool has_member_arg() const;
 296 
 297   // What kind of ciObject is this?
 298   bool is_method() const                         { return true; }
 299 
 300   // Java access flags
 301   bool is_public      () const                   { return flags().is_public(); }
 302   bool is_private     () const                   { return flags().is_private(); }
 303   bool is_protected   () const                   { return flags().is_protected(); }
 304   bool is_static      () const                   { return flags().is_static(); }
 305   bool is_final       () const                   { return flags().is_final(); }
 306   bool is_synchronized() const                   { return flags().is_synchronized(); }
 307   bool is_native      () const                   { return flags().is_native(); }
 308   bool is_interface   () const                   { return flags().is_interface(); }




  62   ciMethodData*    _method_data;
  63   ciMethodBlocks*   _method_blocks;
  64 
  65   // Code attributes.
  66   int _code_size;
  67   int _max_stack;
  68   int _max_locals;
  69   vmIntrinsics::ID _intrinsic_id;
  70   int _handler_count;
  71   int _nmethod_age;
  72   int _interpreter_invocation_count;
  73   int _interpreter_throwout_count;
  74   int _instructions_size;
  75   int _size_of_parameters;
  76 
  77   bool _uses_monitors;
  78   bool _balanced_monitors;
  79   bool _is_c1_compilable;
  80   bool _is_c2_compilable;
  81   bool _can_be_statically_bound;
  82   bool _has_injected_profile;
  83 
  84   // Lazy fields, filled in on demand
  85   address              _code;
  86   ciExceptionHandler** _exception_handlers;
  87 
  88   // Optional liveness analyzer.
  89   MethodLiveness* _liveness;
  90 #if defined(COMPILER2) || defined(SHARK)
  91   ciTypeFlow*         _flow;
  92   BCEscapeAnalyzer*   _bcea;
  93 #endif
  94 
  95   ciMethod(methodHandle h_m, ciInstanceKlass* holder);
  96   ciMethod(ciInstanceKlass* holder, ciSymbol* name, ciSymbol* signature, ciInstanceKlass* accessor);
  97 
  98   Method* get_Method() const {
  99     Method* m = (Method*)_metadata;
 100     assert(m != NULL, "illegal use of unloaded method");
 101     return m;
 102   }


 270   bool should_print_assembly();
 271   bool break_at_execute();
 272   bool has_option(const char *option);
 273   template<typename T>
 274   bool has_option_value(const char* option, T& value);
 275   bool can_be_compiled();
 276   bool can_be_osr_compiled(int entry_bci);
 277   void set_not_compilable(const char* reason = NULL);
 278   bool has_compiled_code();
 279   void log_nmethod_identity(xmlStream* log);
 280   bool is_not_reached(int bci);
 281   bool was_executed_more_than(int times);
 282   bool has_unloaded_classes_in_signature();
 283   bool is_klass_loaded(int refinfo_index, bool must_be_resolved) const;
 284   bool check_call(int refinfo_index, bool is_static) const;
 285   bool ensure_method_data();  // make sure it exists in the VM also
 286   MethodCounters* ensure_method_counters();
 287   int instructions_size();
 288   int scale_count(int count, float prof_factor = 1.);  // make MDO count commensurate with IIC
 289 
 290   bool has_injected_profile() const { return _has_injected_profile;     }
 291   void set_injected_profile(bool x) {        _has_injected_profile = x; }
 292 
 293   // Stack walking support
 294   bool is_ignored_by_security_stack_walk() const;
 295 
 296   // JSR 292 support
 297   bool is_method_handle_intrinsic()  const;
 298   bool is_compiled_lambda_form() const;
 299   bool has_member_arg() const;
 300 
 301   // What kind of ciObject is this?
 302   bool is_method() const                         { return true; }
 303 
 304   // Java access flags
 305   bool is_public      () const                   { return flags().is_public(); }
 306   bool is_private     () const                   { return flags().is_private(); }
 307   bool is_protected   () const                   { return flags().is_protected(); }
 308   bool is_static      () const                   { return flags().is_static(); }
 309   bool is_final       () const                   { return flags().is_final(); }
 310   bool is_synchronized() const                   { return flags().is_synchronized(); }
 311   bool is_native      () const                   { return flags().is_native(); }
 312   bool is_interface   () const                   { return flags().is_interface(); }


src/share/vm/ci/ciMethod.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File