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(); }
|