1045
1046 inline void old_set_add(HeapRegion* hr);
1047 inline void old_set_remove(HeapRegion* hr);
1048
1049 inline void archive_set_add(HeapRegion* hr);
1050
1051 size_t non_young_capacity_bytes() {
1052 return (old_regions_count() + _archive_set.length() + humongous_regions_count()) * HeapRegion::GrainBytes;
1053 }
1054
1055 // Determine whether the given region is one that we are using as an
1056 // old GC alloc region.
1057 bool is_old_gc_alloc_region(HeapRegion* hr);
1058
1059 // Perform a collection of the heap; intended for use in implementing
1060 // "System.gc". This probably implies as full a collection as the
1061 // "CollectedHeap" supports.
1062 virtual void collect(GCCause::Cause cause);
1063
1064 // Perform a collection of the heap with the given cause; if the VM operation
1065 // fails to execute for any reason, retry only if retry_on_vmop_failure is set.
1066 // Returns whether this collection attempt actually executed.
1067 bool attempt_collect(GCCause::Cause cause, bool retry_on_vmop_failure);
1068
1069 // True iff an evacuation has failed in the most-recent collection.
1070 bool evacuation_failed() { return _evacuation_failed; }
1071
1072 void remove_from_old_sets(const uint old_regions_removed, const uint humongous_regions_removed);
1073 void prepend_to_freelist(FreeRegionList* list);
1074 void decrement_summary_bytes(size_t bytes);
1075
1076 virtual bool is_in(const void* p) const;
1077 #ifdef ASSERT
1078 // Returns whether p is in one of the available areas of the heap. Slow but
1079 // extensive version.
1080 bool is_in_exact(const void* p) const;
1081 #endif
1082
1083 // Return "TRUE" iff the given object address is within the collection
1084 // set. Assumes that the reference points into the heap.
1085 inline bool is_in_cset(const HeapRegion *hr);
1086 inline bool is_in_cset(oop obj);
1087 inline bool is_in_cset(HeapWord* addr);
|
1045
1046 inline void old_set_add(HeapRegion* hr);
1047 inline void old_set_remove(HeapRegion* hr);
1048
1049 inline void archive_set_add(HeapRegion* hr);
1050
1051 size_t non_young_capacity_bytes() {
1052 return (old_regions_count() + _archive_set.length() + humongous_regions_count()) * HeapRegion::GrainBytes;
1053 }
1054
1055 // Determine whether the given region is one that we are using as an
1056 // old GC alloc region.
1057 bool is_old_gc_alloc_region(HeapRegion* hr);
1058
1059 // Perform a collection of the heap; intended for use in implementing
1060 // "System.gc". This probably implies as full a collection as the
1061 // "CollectedHeap" supports.
1062 virtual void collect(GCCause::Cause cause);
1063
1064 // Perform a collection of the heap with the given cause; if the VM operation
1065 // fails to execute for any reason, retry only if retry_on_gc_failure is set.
1066 // Returns whether this collection attempt actually executed.
1067 bool attempt_collect(GCCause::Cause cause, bool retry_on_gc_failure);
1068
1069 // True iff an evacuation has failed in the most-recent collection.
1070 bool evacuation_failed() { return _evacuation_failed; }
1071
1072 void remove_from_old_sets(const uint old_regions_removed, const uint humongous_regions_removed);
1073 void prepend_to_freelist(FreeRegionList* list);
1074 void decrement_summary_bytes(size_t bytes);
1075
1076 virtual bool is_in(const void* p) const;
1077 #ifdef ASSERT
1078 // Returns whether p is in one of the available areas of the heap. Slow but
1079 // extensive version.
1080 bool is_in_exact(const void* p) const;
1081 #endif
1082
1083 // Return "TRUE" iff the given object address is within the collection
1084 // set. Assumes that the reference points into the heap.
1085 inline bool is_in_cset(const HeapRegion *hr);
1086 inline bool is_in_cset(oop obj);
1087 inline bool is_in_cset(HeapWord* addr);
|