< prev index next >
src/hotspot/share/gc/shared/collectedHeap.hpp
Print this page
*** 108,120 ****
MemRegion _reserved;
protected:
bool _is_gc_active;
- // Used for filler objects (static, but initialized in ctor).
- static size_t _filler_array_max_size;
-
unsigned int _total_collections; // ... started
unsigned int _total_full_collections; // ... started
NOT_PRODUCT(volatile size_t _promotion_failure_alot_count;)
NOT_PRODUCT(volatile size_t _promotion_failure_alot_gc_number;)
--- 108,117 ----
*** 145,167 ****
// mem_allocate() should never be
// called to allocate TLABs, only individual objects.
virtual HeapWord* mem_allocate(size_t size,
bool* gc_overhead_limit_was_exceeded) = 0;
- // Filler object utilities.
- static inline size_t filler_array_hdr_size();
- static inline size_t filler_array_min_size();
-
- DEBUG_ONLY(static void fill_args_check(HeapWord* start, size_t words);)
- DEBUG_ONLY(static void zap_filler_array(HeapWord* start, size_t words, bool zap = true);)
-
- // Fill with a single array; caller must ensure filler_array_min_size() <=
- // words <= filler_array_max_size().
- static inline void fill_with_array(HeapWord* start, size_t words, bool zap = true);
-
- // Fill with a single object (either an int array or a java.lang.Object).
- static inline void fill_with_object_impl(HeapWord* start, size_t words, bool zap = true);
virtual void trace_heap(GCWhen::Type when, const GCTracer* tracer);
// Verification functions
virtual void check_for_non_bad_heap_word_value(HeapWord* addr, size_t size)
--- 142,151 ----
*** 177,190 ****
G1,
Epsilon,
Z
};
- static inline size_t filler_array_max_size() {
- return _filler_array_max_size;
- }
-
virtual Name kind() const = 0;
virtual const char* name() const = 0;
/**
--- 161,170 ----
*** 285,319 ****
virtual oop obj_allocate(Klass* klass, int size, TRAPS);
virtual oop array_allocate(Klass* klass, int size, int length, bool do_zero, TRAPS);
virtual oop class_allocate(Klass* klass, int size, TRAPS);
- // Utilities for turning raw memory into filler objects.
- //
- // min_fill_size() is the smallest region that can be filled.
- // fill_with_objects() can fill arbitrary-sized regions of the heap using
- // multiple objects. fill_with_object() is for regions known to be smaller
- // than the largest array of integers; it uses a single object to fill the
- // region and has slightly less overhead.
- static size_t min_fill_size() {
- return size_t(align_object_size(oopDesc::header_size()));
- }
-
- static void fill_with_objects(HeapWord* start, size_t words, bool zap = true);
-
- static void fill_with_object(HeapWord* start, size_t words, bool zap = true);
- static void fill_with_object(MemRegion region, bool zap = true) {
- fill_with_object(region.start(), region.word_size(), zap);
- }
- static void fill_with_object(HeapWord* start, HeapWord* end, bool zap = true) {
- fill_with_object(start, pointer_delta(end, start), zap);
- }
-
- virtual void fill_with_dummy_object(HeapWord* start, HeapWord* end, bool zap);
- virtual size_t min_dummy_object_size() const;
- size_t tlab_alloc_reserve() const;
-
// Return the address "addr" aligned by "alignment_in_bytes" if such
// an address is below "end". Return NULL otherwise.
inline static HeapWord* align_allocation_or_fail(HeapWord* addr,
HeapWord* end,
unsigned short alignment_in_bytes);
--- 265,274 ----
< prev index next >