src/share/vm/ci/ciMethod.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/ci

src/share/vm/ci/ciMethod.hpp

Print this page
rev 5464 : 8024070: C2 needs some form of type speculation
Summary: record unused type profile information with type system, propagate and use it.
Reviewed-by:
rev 5465 : imported patch speculative-cleanup


 213 
 214   // Get the interpreters viewpoint on oop liveness.  MethodLiveness is
 215   // conservative in the sense that it may consider locals to be live which
 216   // cannot be live, like in the case where a local could contain an oop or
 217   // a primitive along different paths.  In that case the local must be
 218   // dead when those paths merge. Since the interpreter's viewpoint is
 219   // used when gc'ing an interpreter frame we need to use its viewpoint
 220   // during OSR when loading the locals.
 221 
 222   BitMap  live_local_oops_at_bci(int bci);
 223 
 224 #ifdef COMPILER1
 225   const BitMap  bci_block_start();
 226 #endif
 227 
 228   ciTypeFlow*   get_flow_analysis();
 229   ciTypeFlow*   get_osr_flow_analysis(int osr_bci);  // alternate entry point
 230   ciCallProfile call_profile_at_bci(int bci);
 231   int           interpreter_call_site_count(int bci);
 232 










 233   ciField*      get_field_at_bci( int bci, bool &will_link);
 234   ciMethod*     get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature);
 235 
 236   // Given a certain calling environment, find the monomorphic target
 237   // for the call.  Return NULL if the call is not monomorphic in
 238   // its calling environment.
 239   ciMethod* find_monomorphic_target(ciInstanceKlass* caller,
 240                                     ciInstanceKlass* callee_holder,
 241                                     ciInstanceKlass* actual_receiver);
 242 
 243   // Given a known receiver klass, find the target for the call.
 244   // Return NULL if the call has no target or is abstract.
 245   ciMethod* resolve_invoke(ciKlass* caller, ciKlass* exact_receiver);
 246 
 247   // Find the proper vtable index to invoke this method.
 248   int resolve_vtable_index(ciKlass* caller, ciKlass* receiver);
 249 
 250   // Compilation directives
 251   bool should_exclude();
 252   bool should_inline();




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


src/share/vm/ci/ciMethod.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File