equal
deleted
inserted
replaced
114 Bytecodes::check(code); |
114 Bytecodes::check(code); |
115 assert(0 <= bci && bci < code_size(), "valid bci"); |
115 assert(0 <= bci && bci < code_size(), "valid bci"); |
116 address bcp = _code + bci; |
116 address bcp = _code + bci; |
117 *bcp = code; |
117 *bcp = code; |
118 } |
118 } |
|
119 |
|
120 // Check bytecode and profile data collected are compatible |
|
121 void assert_virtual_call_type_ok(int bci); |
|
122 void assert_call_type_ok(int bci); |
119 |
123 |
120 public: |
124 public: |
121 // Basic method information. |
125 // Basic method information. |
122 ciFlags flags() const { check_is_loaded(); return _flags; } |
126 ciFlags flags() const { check_is_loaded(); return _flags; } |
123 ciSymbol* name() const { return _name; } |
127 ciSymbol* name() const { return _name; } |
227 |
231 |
228 ciTypeFlow* get_flow_analysis(); |
232 ciTypeFlow* get_flow_analysis(); |
229 ciTypeFlow* get_osr_flow_analysis(int osr_bci); // alternate entry point |
233 ciTypeFlow* get_osr_flow_analysis(int osr_bci); // alternate entry point |
230 ciCallProfile call_profile_at_bci(int bci); |
234 ciCallProfile call_profile_at_bci(int bci); |
231 int interpreter_call_site_count(int bci); |
235 int interpreter_call_site_count(int bci); |
|
236 |
|
237 // Does type profiling provide a useful type at this point? |
|
238 ciKlass* argument_profiled_type(int bci, int i); |
|
239 ciKlass* parameter_profiled_type(int i); |
|
240 ciKlass* return_profiled_type(int bci); |
232 |
241 |
233 ciField* get_field_at_bci( int bci, bool &will_link); |
242 ciField* get_field_at_bci( int bci, bool &will_link); |
234 ciMethod* get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature); |
243 ciMethod* get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature); |
235 |
244 |
236 // Given a certain calling environment, find the monomorphic target |
245 // Given a certain calling environment, find the monomorphic target |