< prev index next >

src/share/vm/code/codeCache.hpp

Print this page




 243         comp_level == CompLevel_simple ||
 244         comp_level == CompLevel_full_optimization) {
 245       // Non profiled methods
 246       return CodeBlobType::MethodNonProfiled;
 247     } else if (comp_level == CompLevel_limited_profile ||
 248                comp_level == CompLevel_full_profile) {
 249       // Profiled methods
 250       return CodeBlobType::MethodProfiled;
 251     }
 252     ShouldNotReachHere();
 253     return 0;
 254   }
 255 
 256   static void verify_clean_inline_caches();
 257   static void verify_icholder_relocations();
 258 
 259   // Deoptimization
 260  private:
 261   static int  mark_for_deoptimization(KlassDepChange& changes);
 262 #ifdef HOTSWAP
 263   static int  mark_for_evol_deoptimization(instanceKlassHandle dependee);
 264 #endif // HOTSWAP
 265 
 266  public:
 267   static void mark_all_nmethods_for_deoptimization();
 268   static int  mark_for_deoptimization(Method* dependee);
 269   static void make_marked_nmethods_not_entrant();
 270 
 271   // Flushing and deoptimization
 272   static void flush_dependents_on(instanceKlassHandle dependee);
 273 #ifdef HOTSWAP
 274   // Flushing and deoptimization in case of evolution
 275   static void flush_evol_dependents_on(instanceKlassHandle dependee);
 276 #endif // HOTSWAP
 277   // Support for fullspeed debugging
 278   static void flush_dependents_on_method(methodHandle dependee);
 279 
 280   // tells how many nmethods have dependencies
 281   static int number_of_nmethods_with_dependencies();
 282 
 283   static int get_codemem_full_count(int code_blob_type) {
 284     CodeHeap* heap = get_code_heap(code_blob_type);
 285     return (heap != NULL) ? heap->full_count() : 0;
 286   }
 287 };
 288 
 289 
 290 // Iterator to iterate over nmethods in the CodeCache.
 291 template <class T, class Filter> class CodeBlobIterator : public StackObj {
 292  private:
 293   CodeBlob* _code_blob;   // Current CodeBlob
 294   GrowableArrayIterator<CodeHeap*> _heap;
 295   GrowableArrayIterator<CodeHeap*> _end;




 243         comp_level == CompLevel_simple ||
 244         comp_level == CompLevel_full_optimization) {
 245       // Non profiled methods
 246       return CodeBlobType::MethodNonProfiled;
 247     } else if (comp_level == CompLevel_limited_profile ||
 248                comp_level == CompLevel_full_profile) {
 249       // Profiled methods
 250       return CodeBlobType::MethodProfiled;
 251     }
 252     ShouldNotReachHere();
 253     return 0;
 254   }
 255 
 256   static void verify_clean_inline_caches();
 257   static void verify_icholder_relocations();
 258 
 259   // Deoptimization
 260  private:
 261   static int  mark_for_deoptimization(KlassDepChange& changes);
 262 #ifdef HOTSWAP
 263   static int  mark_for_evol_deoptimization(InstanceKlass* dependee);
 264 #endif // HOTSWAP
 265 
 266  public:
 267   static void mark_all_nmethods_for_deoptimization();
 268   static int  mark_for_deoptimization(Method* dependee);
 269   static void make_marked_nmethods_not_entrant();
 270 
 271   // Flushing and deoptimization
 272   static void flush_dependents_on(InstanceKlass* dependee);
 273 #ifdef HOTSWAP
 274   // Flushing and deoptimization in case of evolution
 275   static void flush_evol_dependents_on(InstanceKlass* dependee);
 276 #endif // HOTSWAP
 277   // Support for fullspeed debugging
 278   static void flush_dependents_on_method(methodHandle dependee);
 279 
 280   // tells how many nmethods have dependencies
 281   static int number_of_nmethods_with_dependencies();
 282 
 283   static int get_codemem_full_count(int code_blob_type) {
 284     CodeHeap* heap = get_code_heap(code_blob_type);
 285     return (heap != NULL) ? heap->full_count() : 0;
 286   }
 287 };
 288 
 289 
 290 // Iterator to iterate over nmethods in the CodeCache.
 291 template <class T, class Filter> class CodeBlobIterator : public StackObj {
 292  private:
 293   CodeBlob* _code_blob;   // Current CodeBlob
 294   GrowableArrayIterator<CodeHeap*> _heap;
 295   GrowableArrayIterator<CodeHeap*> _end;


< prev index next >