< 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
rev 52487 : Worked on comments from Sangheon, Stefan
*** 72,82 ****
--- 72,84 ----
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
*** 135,144 ****
--- 137,148 ----
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,164 ****
--- 159,170 ----
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 >