< 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 >