< prev index next >
src/share/vm/gc/shenandoah/shenandoahHeap.hpp
Print this page
rev 14453 : Remove secondary marking bitmap.
*** 133,144 ****
ShenandoahHeapLock _lock;
ShenandoahCollectorPolicy* _shenandoah_policy;
size_t _bitmap_size;
size_t _bitmap_words_per_region;
MemRegion _heap_region;
! MemRegion _bitmap0_region;
! MemRegion _bitmap1_region;
// Sortable array of regions
ShenandoahHeapRegionSet* _ordered_regions;
ShenandoahFreeSet* _free_regions;
ShenandoahCollectionSet* _collection_set;
--- 133,144 ----
ShenandoahHeapLock _lock;
ShenandoahCollectorPolicy* _shenandoah_policy;
size_t _bitmap_size;
size_t _bitmap_words_per_region;
MemRegion _heap_region;
! MemRegion _bitmap_region;
! MemRegion _aux_bitmap_region;
// Sortable array of regions
ShenandoahHeapRegionSet* _ordered_regions;
ShenandoahFreeSet* _free_regions;
ShenandoahCollectionSet* _collection_set;
*** 163,182 ****
volatile size_t _used;
volatile size_t _committed;
MarkBitMap _verification_bit_map;
! MarkBitMap _mark_bit_map0;
! MarkBitMap _mark_bit_map1;
! MarkBitMap* _complete_mark_bit_map;
! MarkBitMap* _next_mark_bit_map;
! HeapWord** _complete_top_at_mark_starts;
! HeapWord** _complete_top_at_mark_starts_base;
!
! HeapWord** _next_top_at_mark_starts;
! HeapWord** _next_top_at_mark_starts_base;
volatile jbyte _cancelled_concgc;
size_t _bytes_allocated_since_cm;
size_t _bytes_allocated_during_cm;
--- 163,178 ----
volatile size_t _used;
volatile size_t _committed;
MarkBitMap _verification_bit_map;
! MarkBitMap _aux_bit_map;
! MarkBitMap _mark_bit_map;
! bool _bitmap_valid;
! HeapWord** _top_at_mark_starts;
! HeapWord** _top_at_mark_starts_base;
volatile jbyte _cancelled_concgc;
size_t _bytes_allocated_since_cm;
size_t _bytes_allocated_during_cm;
*** 189,199 ****
bool _update_refs_in_progress;
bool _concurrent_partial_in_progress;
unsigned int _evacuation_in_progress;
bool _need_update_refs;
! bool _need_reset_bitmaps;
ReferenceProcessor* _ref_processor;
ShenandoahForwardedIsAliveClosure _forwarded_is_alive;
ShenandoahIsAliveClosure _is_alive;
--- 185,195 ----
bool _update_refs_in_progress;
bool _concurrent_partial_in_progress;
unsigned int _evacuation_in_progress;
bool _need_update_refs;
! bool _need_reset_bitmap;
ReferenceProcessor* _ref_processor;
ShenandoahForwardedIsAliveClosure _forwarded_is_alive;
ShenandoahIsAliveClosure _is_alive;
*** 343,359 ****
inline bool in_collection_set(ShenandoahHeapRegion* r) const;
template <class T>
inline bool in_collection_set(T obj) const;
! inline bool allocated_after_next_mark_start(HeapWord* addr) const;
! void set_next_top_at_mark_start(HeapWord* region_base, HeapWord* addr);
! HeapWord* next_top_at_mark_start(HeapWord* region_base);
!
! inline bool allocated_after_complete_mark_start(HeapWord* addr) const;
! void set_complete_top_at_mark_start(HeapWord* region_base, HeapWord* addr);
! HeapWord* complete_top_at_mark_start(HeapWord* region_base);
// Evacuates object src. Returns the evacuated object if this thread
// succeeded, otherwise rolls back the evacuation and returns the
// evacuated object by the competing thread. 'succeeded' is an out
// param and set to true if this thread succeeded, otherwise to false.
--- 339,351 ----
inline bool in_collection_set(ShenandoahHeapRegion* r) const;
template <class T>
inline bool in_collection_set(T obj) const;
! inline bool allocated_after_mark_start(HeapWord* addr) const;
! void set_top_at_mark_start(HeapWord* region_base, HeapWord* addr);
! HeapWord* top_at_mark_start(HeapWord* region_base);
// Evacuates object src. Returns the evacuated object if this thread
// succeeded, otherwise rolls back the evacuation and returns the
// evacuated object by the competing thread. 'succeeded' is an out
// param and set to true if this thread succeeded, otherwise to false.
*** 381,401 ****
void handle_heap_shrinkage();
size_t garbage();
! void reset_next_mark_bitmap(WorkGang* gang);
! void reset_complete_mark_bitmap(WorkGang* gang);
! MarkBitMap* complete_mark_bit_map();
! MarkBitMap* next_mark_bit_map();
! inline bool is_marked_complete(oop obj) const;
! inline bool mark_next(oop obj) const;
! inline bool is_marked_next(oop obj) const;
! bool is_next_bitmap_clear();
! bool is_next_bitmap_clear_range(HeapWord* start, HeapWord* end);
! bool is_complete_bitmap_clear_range(HeapWord* start, HeapWord* end);
bool commit_bitmaps(ShenandoahHeapRegion* r);
bool uncommit_bitmaps(ShenandoahHeapRegion* r);
template <class T>
--- 373,392 ----
void handle_heap_shrinkage();
size_t garbage();
! void reset_mark_bitmap(WorkGang* gang);
!
! MarkBitMap* mark_bit_map();
! inline bool is_marked(oop obj) const;
! inline bool mark(oop obj);
! bool is_bitmap_clear();
! bool is_bitmap_clear_range(HeapWord* start, HeapWord* end);
! bool is_bitmap_valid() const { return _bitmap_valid; }
! void set_bitmap_valid(bool valid) { _bitmap_valid = valid; }
bool commit_bitmaps(ShenandoahHeapRegion* r);
bool uncommit_bitmaps(ShenandoahHeapRegion* r);
template <class T>
*** 457,468 ****
template<class T>
inline void marked_object_oop_safe_iterate(ShenandoahHeapRegion* region, T* cl);
GCTimer* gc_timer() const;
- void swap_mark_bitmaps();
-
void cancel_concgc(GCCause::Cause cause);
void cancel_concgc(ShenandoahCancelCause cause);
ShenandoahHeapLock* lock() { return &_lock; }
void assert_heaplock_owned_by_current_thread() PRODUCT_RETURN;
--- 448,457 ----
*** 501,515 ****
inline HeapWord* allocate_from_gclab(Thread* thread, size_t size);
HeapWord* allocate_from_gclab_slow(Thread* thread, size_t size);
HeapWord* allocate_new_gclab(size_t word_size);
template<class T>
! inline void do_marked_object(MarkBitMap* bitmap, T* cl, oop obj);
ShenandoahConcurrentThread* concurrent_thread() { return _concurrent_gc_thread; }
! inline bool mark_next_no_checks(oop obj) const;
public:
inline oop atomic_compare_exchange_oop(oop n, narrowOop* addr, oop c);
inline oop atomic_compare_exchange_oop(oop n, oop* addr, oop c);
--- 490,504 ----
inline HeapWord* allocate_from_gclab(Thread* thread, size_t size);
HeapWord* allocate_from_gclab_slow(Thread* thread, size_t size);
HeapWord* allocate_new_gclab(size_t word_size);
template<class T>
! inline void do_marked_object(T* cl, oop obj);
ShenandoahConcurrentThread* concurrent_thread() { return _concurrent_gc_thread; }
! inline bool mark_no_checks(oop obj);
public:
inline oop atomic_compare_exchange_oop(oop n, narrowOop* addr, oop c);
inline oop atomic_compare_exchange_oop(oop n, oop* addr, oop c);
*** 543,550 ****
--- 532,541 ----
void set_alloc_seq_gc_start();
void set_alloc_seq_gc_end();
void set_used_at_last_gc() {_used_at_last_gc = used();}
+
+ void make_tlabs_parsable(bool retire_tlabs) /* override */;
};
#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAP_HPP
< prev index next >