< prev index next >

src/hotspot/share/gc/shared/cardTableRS.hpp

Print this page

        

*** 30,40 **** #include "oops/oop.hpp" class DirtyCardToOopClosure; class Generation; class Space; - class OopsInGenClosure; // Helper to remember modified oops in all clds. class CLDRemSet { bool _accumulate_modified_oops; public: --- 30,39 ----
*** 102,122 **** CardTableRS(MemRegion whole_heap, bool scanned_concurrently); ~CardTableRS(); CLDRemSet* cld_rem_set() { return &_cld_rem_set; } ! void younger_refs_in_space_iterate(Space* sp, OopsInGenClosure* cl, uint n_threads); virtual void verify_used_region_at_save_marks(Space* sp) const NOT_DEBUG_RETURN; // Override. void prepare_for_younger_refs_iterate(bool parallel); ! // Card table entries are cleared before application; "blk" is ! // responsible for dirtying if the oop is still older-to-younger after ! // closure application. ! void younger_refs_iterate(Generation* g, OopsInGenClosure* blk, uint n_threads); void inline_write_ref_field_gc(void* field, oop new_val) { CardValue* byte = byte_for(field); *byte = youngergen_card; } --- 101,119 ---- CardTableRS(MemRegion whole_heap, bool scanned_concurrently); ~CardTableRS(); CLDRemSet* cld_rem_set() { return &_cld_rem_set; } ! void younger_refs_in_space_iterate(Space* sp, HeapWord* gen_boundary, OopIterateClosure* cl, uint n_threads); virtual void verify_used_region_at_save_marks(Space* sp) const NOT_DEBUG_RETURN; // Override. void prepare_for_younger_refs_iterate(bool parallel); ! // Card table entries are cleared before application; ! void at_younger_refs_iterate(); void inline_write_ref_field_gc(void* field, oop new_val) { CardValue* byte = byte_for(field); *byte = youngergen_card; }
*** 163,180 **** bool card_may_have_been_dirty(CardValue cv); // Iterate over the portion of the card-table which covers the given // region mr in the given space and apply cl to any dirty sub-regions // of mr. Clears the dirty cards as they are processed. ! void non_clean_card_iterate_possibly_parallel(Space* sp, MemRegion mr, ! OopsInGenClosure* cl, CardTableRS* ct, uint n_threads); // Work method used to implement non_clean_card_iterate_possibly_parallel() // above in the parallel case. virtual void non_clean_card_iterate_parallel_work(Space* sp, MemRegion mr, ! OopsInGenClosure* cl, CardTableRS* ct, uint n_threads); // This is an array, one element per covered region of the card table. // Each entry is itself an array, with one element per chunk in the // covered region. Each entry of these arrays is the lowest non-clean --- 160,178 ---- bool card_may_have_been_dirty(CardValue cv); // Iterate over the portion of the card-table which covers the given // region mr in the given space and apply cl to any dirty sub-regions // of mr. Clears the dirty cards as they are processed. ! void non_clean_card_iterate_possibly_parallel(Space* sp, HeapWord* gen_boundary, ! MemRegion mr, ! OopIterateClosure* cl, CardTableRS* ct, uint n_threads); // Work method used to implement non_clean_card_iterate_possibly_parallel() // above in the parallel case. virtual void non_clean_card_iterate_parallel_work(Space* sp, MemRegion mr, ! OopIterateClosure* cl, CardTableRS* ct, uint n_threads); // This is an array, one element per covered region of the card table. // Each entry is itself an array, with one element per chunk in the // covered region. Each entry of these arrays is the lowest non-clean
< prev index next >