< prev index next >

src/hotspot/share/gc/g1/heapRegionType.hpp

Print this page
rev 51652 : Added support for eager mixed collection of evacuation failure regions
rev 52017 : All changes for G1 GC moved from 'combined' repo folder

@@ -72,12 +72,13 @@
     PinnedMask            = 8,
     StartsHumongousTag    = HumongousMask | PinnedMask,
     ContinuesHumongousTag = HumongousMask | PinnedMask + 1,
 
     OldMask               = 16,
+    PreMatureOldMask      = OldMask + 1,
     OldTag                = OldMask,
-
+    PreMatureOldTag       = PreMatureOldMask,
     // Archive regions are regions with immutable content (i.e. not reclaimed, and
     // not allocated into during regular operation). They differ in the kind of references
     // allowed for the contained objects:
     // - Closed archive regions form a separate self-contained (closed) object graph
     // within the set of all of these regions. No references outside of closed

@@ -135,10 +136,12 @@
   bool is_closed_archive() const { return get() == ClosedArchiveTag; }
 
   // is_old regions may or may not also be pinned
   bool is_old() const { return (get() & OldMask) != 0; }
 
+  bool is_premature_old() const { return get() == PreMatureOldTag; }
+
   bool is_old_or_humongous() const { return (get() & (OldMask | HumongousMask)) != 0; }
 
   bool is_old_or_humongous_or_archive() const { return (get() & (OldMask | HumongousMask | ArchiveMask)) != 0; }
 
   // is_pinned regions may be archive or humongous

@@ -155,10 +158,12 @@
   void set_starts_humongous()    { set_from(StartsHumongousTag,    FreeTag); }
   void set_continues_humongous() { set_from(ContinuesHumongousTag, FreeTag); }
 
   void set_old() { set(OldTag); }
 
+  void set_premature_old() { set(PreMatureOldTag); }
+
   // Change the current region type to be of an old region type if not already done so.
   // Returns whether the region type has been changed or not.
   bool relabel_as_old() {
     //assert(!is_free(), "Should not try to move Free region");
     assert(!is_humongous(), "Should not try to move Humongous region");
< prev index next >