217
218 // Get the interpreters viewpoint on oop liveness. MethodLiveness is
219 // conservative in the sense that it may consider locals to be live which
220 // cannot be live, like in the case where a local could contain an oop or
221 // a primitive along different paths. In that case the local must be
222 // dead when those paths merge. Since the interpreter's viewpoint is
223 // used when gc'ing an interpreter frame we need to use its viewpoint
224 // during OSR when loading the locals.
225
226 BitMap live_local_oops_at_bci(int bci);
227
228 #ifdef COMPILER1
229 const BitMap bci_block_start();
230 #endif
231
232 ciTypeFlow* get_flow_analysis();
233 ciTypeFlow* get_osr_flow_analysis(int osr_bci); // alternate entry point
234 ciCallProfile call_profile_at_bci(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);
241
242 ciField* get_field_at_bci( int bci, bool &will_link);
243 ciMethod* get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature);
244
245 // Given a certain calling environment, find the monomorphic target
246 // for the call. Return NULL if the call is not monomorphic in
247 // its calling environment.
248 ciMethod* find_monomorphic_target(ciInstanceKlass* caller,
249 ciInstanceKlass* callee_holder,
250 ciInstanceKlass* actual_receiver);
251
252 // Given a known receiver klass, find the target for the call.
253 // Return NULL if the call has no target or is abstract.
254 ciMethod* resolve_invoke(ciKlass* caller, ciKlass* exact_receiver);
255
256 // Find the proper vtable index to invoke this method.
257 int resolve_vtable_index(ciKlass* caller, ciKlass* receiver);
258
259 // Compilation directives
260 bool should_exclude();
|
217
218 // Get the interpreters viewpoint on oop liveness. MethodLiveness is
219 // conservative in the sense that it may consider locals to be live which
220 // cannot be live, like in the case where a local could contain an oop or
221 // a primitive along different paths. In that case the local must be
222 // dead when those paths merge. Since the interpreter's viewpoint is
223 // used when gc'ing an interpreter frame we need to use its viewpoint
224 // during OSR when loading the locals.
225
226 BitMap live_local_oops_at_bci(int bci);
227
228 #ifdef COMPILER1
229 const BitMap bci_block_start();
230 #endif
231
232 ciTypeFlow* get_flow_analysis();
233 ciTypeFlow* get_osr_flow_analysis(int osr_bci); // alternate entry point
234 ciCallProfile call_profile_at_bci(int bci);
235 int interpreter_call_site_count(int bci);
236
237 // Does type profiling provide any useful information at this point?
238 bool argument_profiled_type(int bci, int i, ciKlass*& type, bool& maybe_null);
239 bool parameter_profiled_type(int i, ciKlass*& type, bool& maybe_null);
240 bool return_profiled_type(int bci, ciKlass*& type, bool& maybe_null);
241
242 ciField* get_field_at_bci( int bci, bool &will_link);
243 ciMethod* get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature);
244
245 // Given a certain calling environment, find the monomorphic target
246 // for the call. Return NULL if the call is not monomorphic in
247 // its calling environment.
248 ciMethod* find_monomorphic_target(ciInstanceKlass* caller,
249 ciInstanceKlass* callee_holder,
250 ciInstanceKlass* actual_receiver);
251
252 // Given a known receiver klass, find the target for the call.
253 // Return NULL if the call has no target or is abstract.
254 ciMethod* resolve_invoke(ciKlass* caller, ciKlass* exact_receiver);
255
256 // Find the proper vtable index to invoke this method.
257 int resolve_vtable_index(ciKlass* caller, ciKlass* receiver);
258
259 // Compilation directives
260 bool should_exclude();
|