Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/g1/concurrentMark.hpp @ 1394:1316cec51b4d
6819061: G1: eliminate serial Other times that are proportional to the collection set length
6871109: G1: remove the concept of the scan only prefix
Summary: Removed scan only regions and associated code. The young portion of the collection set is now constructed incrementally - when a young region is retired as the current allocation region it is added to the collection set.
Reviewed-by: apetrusenko, iveresov, tonyp
author | johnc |
---|---|
date | Thu, 22 Apr 2010 10:02:38 -0700 |
parents | 7666957bc44d |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
1393:6ecb6e6de3d6 | 1394:1316cec51b4d |
---|---|
1 /* | 1 /* |
2 * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved. | 2 * Copyright 2001-2010 Sun Microsystems, Inc. All Rights Reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
731 void newCSet(); | 731 void newCSet(); |
732 // It registers a collection set heap region with CM. This is used | 732 // It registers a collection set heap region with CM. This is used |
733 // to determine whether any heap regions are located above the finger. | 733 // to determine whether any heap regions are located above the finger. |
734 void registerCSetRegion(HeapRegion* hr); | 734 void registerCSetRegion(HeapRegion* hr); |
735 | 735 |
736 // Registers the maximum region-end associated with a set of | |
737 // regions with CM. Again this is used to determine whether any | |
738 // heap regions are located above the finger. | |
739 void register_collection_set_finger(HeapWord* max_finger) { | |
740 // max_finger is the highest heap region end of the regions currently | |
741 // contained in the collection set. If this value is larger than | |
742 // _min_finger then we need to gray objects. | |
743 // This routine is like registerCSetRegion but for an entire | |
744 // collection of regions. | |
745 if (max_finger > _min_finger) | |
746 _should_gray_objects = true; | |
747 } | |
748 | |
736 // Returns "true" if at least one mark has been completed. | 749 // Returns "true" if at least one mark has been completed. |
737 bool at_least_one_mark_complete() { return _at_least_one_mark_complete; } | 750 bool at_least_one_mark_complete() { return _at_least_one_mark_complete; } |
738 | 751 |
739 bool isMarked(oop p) const { | 752 bool isMarked(oop p) const { |
740 assert(p != NULL && p->is_oop(), "expected an oop"); | 753 assert(p != NULL && p->is_oop(), "expected an oop"); |