< prev index next >

src/share/vm/gc/shared/collectedHeap.hpp

Print this page
rev 13280 : imported patch CollectedHeap_register_nmethod


 376   // The argument "retire_tlabs" controls whether existing TLABs
 377   // are merely filled or also retired, thus preventing further
 378   // allocation from them and necessitating allocation of new TLABs.
 379   virtual void ensure_parsability(bool retire_tlabs);
 380 
 381   // Section on thread-local allocation buffers (TLABs)
 382   // If the heap supports thread-local allocation buffers, it should override
 383   // the following methods:
 384   // Returns "true" iff the heap supports thread-local allocation buffers.
 385   // The default is "no".
 386   virtual bool supports_tlab_allocation() const = 0;
 387 
 388   // The amount of space available for thread-local allocation buffers.
 389   virtual size_t tlab_capacity(Thread *thr) const = 0;
 390 
 391   // The amount of used space for thread-local allocation buffers for the given thread.
 392   virtual size_t tlab_used(Thread *thr) const = 0;
 393 
 394   virtual size_t max_tlab_size() const;
 395 


 396   // An estimate of the maximum allocation that could be performed
 397   // for thread-local allocation buffers without triggering any
 398   // collection or expansion activity.
 399   virtual size_t unsafe_max_tlab_alloc(Thread *thr) const {
 400     guarantee(false, "thread-local allocation buffers not supported");
 401     return 0;
 402   }
 403 
 404   // Can a compiler initialize a new object without store barriers?
 405   // This permission only extends from the creation of a new object
 406   // via a TLAB up to the first subsequent safepoint. If such permission
 407   // is granted for this heap type, the compiler promises to call
 408   // defer_store_barrier() below on any slow path allocation of
 409   // a new object for which such initializing store barriers will
 410   // have been elided.
 411   virtual bool can_elide_tlab_store_barriers() const = 0;
 412 
 413   // If a compiler is eliding store barriers for TLAB-allocated objects,
 414   // there is probably a corresponding slow path which can produce
 415   // an object allocated anywhere.  The compiler's runtime support




 376   // The argument "retire_tlabs" controls whether existing TLABs
 377   // are merely filled or also retired, thus preventing further
 378   // allocation from them and necessitating allocation of new TLABs.
 379   virtual void ensure_parsability(bool retire_tlabs);
 380 
 381   // Section on thread-local allocation buffers (TLABs)
 382   // If the heap supports thread-local allocation buffers, it should override
 383   // the following methods:
 384   // Returns "true" iff the heap supports thread-local allocation buffers.
 385   // The default is "no".
 386   virtual bool supports_tlab_allocation() const = 0;
 387 
 388   // The amount of space available for thread-local allocation buffers.
 389   virtual size_t tlab_capacity(Thread *thr) const = 0;
 390 
 391   // The amount of used space for thread-local allocation buffers for the given thread.
 392   virtual size_t tlab_used(Thread *thr) const = 0;
 393 
 394   virtual size_t max_tlab_size() const;
 395 
 396   virtual void verify_nmethod_roots(nmethod* nmethod);
 397 
 398   // An estimate of the maximum allocation that could be performed
 399   // for thread-local allocation buffers without triggering any
 400   // collection or expansion activity.
 401   virtual size_t unsafe_max_tlab_alloc(Thread *thr) const {
 402     guarantee(false, "thread-local allocation buffers not supported");
 403     return 0;
 404   }
 405 
 406   // Can a compiler initialize a new object without store barriers?
 407   // This permission only extends from the creation of a new object
 408   // via a TLAB up to the first subsequent safepoint. If such permission
 409   // is granted for this heap type, the compiler promises to call
 410   // defer_store_barrier() below on any slow path allocation of
 411   // a new object for which such initializing store barriers will
 412   // have been elided.
 413   virtual bool can_elide_tlab_store_barriers() const = 0;
 414 
 415   // If a compiler is eliding store barriers for TLAB-allocated objects,
 416   // there is probably a corresponding slow path which can produce
 417   // an object allocated anywhere.  The compiler's runtime support


< prev index next >