comparison src/share/vm/ci/ciMethod.hpp @ 6988:2cb439954abf

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Gilles Duboscq <duboscq@ssw.jku.at>
date Mon, 19 Nov 2012 15:36:13 +0100
parents bb33c6fdcf0d
children beebba0acc11
comparison
equal deleted inserted replaced
6963:dd0dd0321e2a 6988:2cb439954abf
49 CI_PACKAGE_ACCESS 49 CI_PACKAGE_ACCESS
50 friend class ciEnv; 50 friend class ciEnv;
51 friend class ciExceptionHandlerStream; 51 friend class ciExceptionHandlerStream;
52 friend class ciBytecodeStream; 52 friend class ciBytecodeStream;
53 friend class ciMethodHandle; 53 friend class ciMethodHandle;
54 friend class ciReplay;
54 55
55 private: 56 private:
56 // General method information. 57 // General method information.
57 ciFlags _flags; 58 ciFlags _flags;
58 ciSymbol* _name; 59 ciSymbol* _name;
67 int _max_locals; 68 int _max_locals;
68 vmIntrinsics::ID _intrinsic_id; 69 vmIntrinsics::ID _intrinsic_id;
69 int _handler_count; 70 int _handler_count;
70 int _interpreter_invocation_count; 71 int _interpreter_invocation_count;
71 int _interpreter_throwout_count; 72 int _interpreter_throwout_count;
73 int _instructions_size;
72 74
73 bool _uses_monitors; 75 bool _uses_monitors;
74 bool _balanced_monitors; 76 bool _balanced_monitors;
75 bool _is_c1_compilable; 77 bool _is_c1_compilable;
76 bool _is_c2_compilable; 78 bool _is_c2_compilable;
237 239
238 // Find the proper vtable index to invoke this method. 240 // Find the proper vtable index to invoke this method.
239 int resolve_vtable_index(ciKlass* caller, ciKlass* receiver); 241 int resolve_vtable_index(ciKlass* caller, ciKlass* receiver);
240 242
241 // Compilation directives 243 // Compilation directives
242 bool will_link(ciKlass* accessing_klass,
243 ciKlass* declared_method_holder,
244 Bytecodes::Code bc);
245 bool should_exclude(); 244 bool should_exclude();
246 bool should_inline(); 245 bool should_inline();
247 bool should_not_inline(); 246 bool should_not_inline();
248 bool should_print_assembly(); 247 bool should_print_assembly();
249 bool break_at_execute(); 248 bool break_at_execute();
250 bool has_option(const char *option); 249 bool has_option(const char *option);
251 bool can_be_compiled(); 250 bool can_be_compiled();
252 bool can_be_osr_compiled(int entry_bci); 251 bool can_be_osr_compiled(int entry_bci);
253 void set_not_compilable(); 252 void set_not_compilable();
254 bool has_compiled_code(); 253 bool has_compiled_code();
255 int instructions_size(int comp_level = CompLevel_any);
256 void log_nmethod_identity(xmlStream* log); 254 void log_nmethod_identity(xmlStream* log);
257 bool is_not_reached(int bci); 255 bool is_not_reached(int bci);
258 bool was_executed_more_than(int times); 256 bool was_executed_more_than(int times);
259 bool has_unloaded_classes_in_signature(); 257 bool has_unloaded_classes_in_signature();
260 bool is_klass_loaded(int refinfo_index, bool must_be_resolved) const; 258 bool is_klass_loaded(int refinfo_index, bool must_be_resolved) const;
261 bool check_call(int refinfo_index, bool is_static) const; 259 bool check_call(int refinfo_index, bool is_static) const;
262 bool ensure_method_data(); // make sure it exists in the VM also 260 bool ensure_method_data(); // make sure it exists in the VM also
261 int instructions_size();
263 int scale_count(int count, float prof_factor = 1.); // make MDO count commensurate with IIC 262 int scale_count(int count, float prof_factor = 1.); // make MDO count commensurate with IIC
264 263
265 // JSR 292 support 264 // JSR 292 support
266 bool is_method_handle_intrinsic() const; 265 bool is_method_handle_intrinsic() const;
267 bool is_compiled_lambda_form() const; 266 bool is_compiled_lambda_form() const;
289 bool has_loops () const; 288 bool has_loops () const;
290 bool has_jsrs () const; 289 bool has_jsrs () const;
291 bool is_accessor () const; 290 bool is_accessor () const;
292 bool is_initializer () const; 291 bool is_initializer () const;
293 bool can_be_statically_bound() const { return _can_be_statically_bound; } 292 bool can_be_statically_bound() const { return _can_be_statically_bound; }
293 void dump_replay_data(outputStream* st);
294 294
295 // Print the bytecodes of this method. 295 // Print the bytecodes of this method.
296 void print_codes_on(outputStream* st); 296 void print_codes_on(outputStream* st);
297 void print_codes() { 297 void print_codes() {
298 print_codes_on(tty); 298 print_codes_on(tty);