< prev index next >

src/share/vm/code/codeCache.hpp

Print this page




 265 
 266   // Deoptimization
 267  private:
 268   static int  mark_for_deoptimization(KlassDepChange& changes);
 269 #ifdef HOTSWAP
 270   static int  mark_for_evol_deoptimization(InstanceKlass* dependee);
 271 #endif // HOTSWAP
 272 
 273  public:
 274   static void mark_all_nmethods_for_deoptimization();
 275   static int  mark_for_deoptimization(Method* dependee);
 276   static void make_marked_nmethods_not_entrant();
 277 
 278   // Flushing and deoptimization
 279   static void flush_dependents_on(InstanceKlass* dependee);
 280 #ifdef HOTSWAP
 281   // Flushing and deoptimization in case of evolution
 282   static void flush_evol_dependents_on(InstanceKlass* dependee);
 283 #endif // HOTSWAP
 284   // Support for fullspeed debugging
 285   static void flush_dependents_on_method(methodHandle dependee);
 286 
 287   // tells how many nmethods have dependencies
 288   static int number_of_nmethods_with_dependencies();
 289 
 290   static int get_codemem_full_count(int code_blob_type) {
 291     CodeHeap* heap = get_code_heap(code_blob_type);
 292     return (heap != NULL) ? heap->full_count() : 0;
 293   }
 294 };
 295 
 296 
 297 // Iterator to iterate over nmethods in the CodeCache.
 298 template <class T, class Filter> class CodeBlobIterator : public StackObj {
 299  private:
 300   CodeBlob* _code_blob;   // Current CodeBlob
 301   GrowableArrayIterator<CodeHeap*> _heap;
 302   GrowableArrayIterator<CodeHeap*> _end;
 303 
 304  public:
 305   CodeBlobIterator(T* nm = NULL) {




 265 
 266   // Deoptimization
 267  private:
 268   static int  mark_for_deoptimization(KlassDepChange& changes);
 269 #ifdef HOTSWAP
 270   static int  mark_for_evol_deoptimization(InstanceKlass* dependee);
 271 #endif // HOTSWAP
 272 
 273  public:
 274   static void mark_all_nmethods_for_deoptimization();
 275   static int  mark_for_deoptimization(Method* dependee);
 276   static void make_marked_nmethods_not_entrant();
 277 
 278   // Flushing and deoptimization
 279   static void flush_dependents_on(InstanceKlass* dependee);
 280 #ifdef HOTSWAP
 281   // Flushing and deoptimization in case of evolution
 282   static void flush_evol_dependents_on(InstanceKlass* dependee);
 283 #endif // HOTSWAP
 284   // Support for fullspeed debugging
 285   static void flush_dependents_on_method(const methodHandle& dependee);
 286 
 287   // tells how many nmethods have dependencies
 288   static int number_of_nmethods_with_dependencies();
 289 
 290   static int get_codemem_full_count(int code_blob_type) {
 291     CodeHeap* heap = get_code_heap(code_blob_type);
 292     return (heap != NULL) ? heap->full_count() : 0;
 293   }
 294 };
 295 
 296 
 297 // Iterator to iterate over nmethods in the CodeCache.
 298 template <class T, class Filter> class CodeBlobIterator : public StackObj {
 299  private:
 300   CodeBlob* _code_blob;   // Current CodeBlob
 301   GrowableArrayIterator<CodeHeap*> _heap;
 302   GrowableArrayIterator<CodeHeap*> _end;
 303 
 304  public:
 305   CodeBlobIterator(T* nm = NULL) {


< prev index next >