591 void cleanup_for_next_mark();
592
593 // Clear the previous marking bitmap during safepoint.
594 void clear_prev_bitmap(WorkGang* workers);
595
596 // Return whether the next mark bitmap has no marks set. To be used for assertions
597 // only. Will not yield to pause requests.
598 bool nextMarkBitmapIsClear();
599
600 // These two do the work that needs to be done before and after the
601 // initial root checkpoint. Since this checkpoint can be done at two
602 // different points (i.e. an explicit pause or piggy-backed on a
603 // young collection), then it's nice to be able to easily share the
604 // pre/post code. It might be the case that we can put everything in
605 // the post method. TP
606 void checkpointRootsInitialPre();
607 void checkpointRootsInitialPost();
608
609 // Scan all the root regions and mark everything reachable from
610 // them.
611 void scanRootRegions();
612
613 // Scan a single root region and mark everything reachable from it.
614 void scanRootRegion(HeapRegion* hr, uint worker_id);
615
616 // Do concurrent phase of marking, to a tentative transitive closure.
617 void markFromRoots();
618
619 void checkpointRootsFinal(bool clear_all_soft_refs);
620 void checkpointRootsFinalWork();
621 void cleanup();
622 void completeCleanup();
623
624 // Mark in the previous bitmap. NB: this is usually read-only, so use
625 // this carefully!
626 inline void markPrev(oop p);
627
628 // Clears marks for all objects in the given range, for the prev or
629 // next bitmaps. NB: the previous bitmap is usually
630 // read-only, so use this carefully!
631 void clearRangePrevBitmap(MemRegion mr);
632
633 // Notify data structures that a GC has started.
634 void note_start_of_gc() {
635 _markStack.note_start_of_gc();
636 }
637
638 // Notify data structures that a GC is finished.
639 void note_end_of_gc() {
640 _markStack.note_end_of_gc();
641 }
642
|
591 void cleanup_for_next_mark();
592
593 // Clear the previous marking bitmap during safepoint.
594 void clear_prev_bitmap(WorkGang* workers);
595
596 // Return whether the next mark bitmap has no marks set. To be used for assertions
597 // only. Will not yield to pause requests.
598 bool nextMarkBitmapIsClear();
599
600 // These two do the work that needs to be done before and after the
601 // initial root checkpoint. Since this checkpoint can be done at two
602 // different points (i.e. an explicit pause or piggy-backed on a
603 // young collection), then it's nice to be able to easily share the
604 // pre/post code. It might be the case that we can put everything in
605 // the post method. TP
606 void checkpointRootsInitialPre();
607 void checkpointRootsInitialPost();
608
609 // Scan all the root regions and mark everything reachable from
610 // them.
611 void scan_root_regions();
612
613 // Scan a single root region and mark everything reachable from it.
614 void scanRootRegion(HeapRegion* hr, uint worker_id);
615
616 // Do concurrent phase of marking, to a tentative transitive closure.
617 void mark_from_roots();
618
619 void checkpointRootsFinal(bool clear_all_soft_refs);
620 void checkpointRootsFinalWork();
621 void cleanup();
622 void complete_cleanup();
623
624 // Mark in the previous bitmap. NB: this is usually read-only, so use
625 // this carefully!
626 inline void markPrev(oop p);
627
628 // Clears marks for all objects in the given range, for the prev or
629 // next bitmaps. NB: the previous bitmap is usually
630 // read-only, so use this carefully!
631 void clearRangePrevBitmap(MemRegion mr);
632
633 // Notify data structures that a GC has started.
634 void note_start_of_gc() {
635 _markStack.note_start_of_gc();
636 }
637
638 // Notify data structures that a GC is finished.
639 void note_end_of_gc() {
640 _markStack.note_end_of_gc();
641 }
642
|