226 // during OSR when loading the locals. 227 228 BitMap live_local_oops_at_bci(int bci); 229 230 #ifdef COMPILER1 231 const BitMap bci_block_start(); 232 #endif 233 234 ciTypeFlow* get_flow_analysis(); 235 ciTypeFlow* get_osr_flow_analysis(int osr_bci); // alternate entry point 236 ciCallProfile call_profile_at_bci(int bci); 237 int interpreter_call_site_count(int bci); 238 239 // Does type profiling provide a useful type at this point? 240 ciKlass* argument_profiled_type(int bci, int i); 241 ciKlass* parameter_profiled_type(int i); 242 ciKlass* return_profiled_type(int bci); 243 244 ciField* get_field_at_bci( int bci, bool &will_link); 245 ciMethod* get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature); 246 // Given a certain calling environment, find the monomorphic target 247 // for the call. Return NULL if the call is not monomorphic in 248 // its calling environment. 249 ciMethod* find_monomorphic_target(ciInstanceKlass* caller, 250 ciInstanceKlass* callee_holder, 251 ciInstanceKlass* actual_receiver, 252 bool check_access = true); 253 254 // Given a known receiver klass, find the target for the call. 255 // Return NULL if the call has no target or is abstract. 256 ciMethod* resolve_invoke(ciKlass* caller, ciKlass* exact_receiver, bool check_access = true); 257 258 // Find the proper vtable index to invoke this method. 259 int resolve_vtable_index(ciKlass* caller, ciKlass* receiver); 260 261 // Compilation directives 262 bool should_exclude(); 263 bool should_inline(); 264 bool should_not_inline(); 265 bool should_print_assembly(); | 226 // during OSR when loading the locals. 227 228 BitMap live_local_oops_at_bci(int bci); 229 230 #ifdef COMPILER1 231 const BitMap bci_block_start(); 232 #endif 233 234 ciTypeFlow* get_flow_analysis(); 235 ciTypeFlow* get_osr_flow_analysis(int osr_bci); // alternate entry point 236 ciCallProfile call_profile_at_bci(int bci); 237 int interpreter_call_site_count(int bci); 238 239 // Does type profiling provide a useful type at this point? 240 ciKlass* argument_profiled_type(int bci, int i); 241 ciKlass* parameter_profiled_type(int i); 242 ciKlass* return_profiled_type(int bci); 243 244 ciField* get_field_at_bci( int bci, bool &will_link); 245 ciMethod* get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature); 246 ciMethod* get_method_at_bci(int bci) { 247 bool ignored_will_link; 248 ciSignature* ignored_declared_signature; 249 return get_method_at_bci(bci, ignored_will_link, &ignored_declared_signature); 250 } 251 // Given a certain calling environment, find the monomorphic target 252 // for the call. Return NULL if the call is not monomorphic in 253 // its calling environment. 254 ciMethod* find_monomorphic_target(ciInstanceKlass* caller, 255 ciInstanceKlass* callee_holder, 256 ciInstanceKlass* actual_receiver, 257 bool check_access = true); 258 259 // Given a known receiver klass, find the target for the call. 260 // Return NULL if the call has no target or is abstract. 261 ciMethod* resolve_invoke(ciKlass* caller, ciKlass* exact_receiver, bool check_access = true); 262 263 // Find the proper vtable index to invoke this method. 264 int resolve_vtable_index(ciKlass* caller, ciKlass* receiver); 265 266 // Compilation directives 267 bool should_exclude(); 268 bool should_inline(); 269 bool should_not_inline(); 270 bool should_print_assembly(); |