comparison src/share/vm/gc_implementation/g1/concurrentMark.hpp @ 549:fe3d7c11b4b7

6700941: G1: allocation spec missing for some G1 classes Reviewed-by: tonyp
author apetrusenko
date Tue, 10 Feb 2009 18:39:09 +0300
parents 37f87013dfd8
children 0fbdb4381b99
comparison
equal deleted inserted replaced
548:773234c55e8c 549:fe3d7c11b4b7
28 typedef GenericTaskQueueSet<oop> CMTaskQueueSet; 28 typedef GenericTaskQueueSet<oop> CMTaskQueueSet;
29 29
30 // A generic CM bit map. This is essentially a wrapper around the BitMap 30 // A generic CM bit map. This is essentially a wrapper around the BitMap
31 // class, with one bit per (1<<_shifter) HeapWords. 31 // class, with one bit per (1<<_shifter) HeapWords.
32 32
33 class CMBitMapRO { 33 class CMBitMapRO VALUE_OBJ_CLASS_SPEC {
34 protected: 34 protected:
35 HeapWord* _bmStartWord; // base address of range covered by map 35 HeapWord* _bmStartWord; // base address of range covered by map
36 size_t _bmWordSize; // map size (in #HeapWords covered) 36 size_t _bmWordSize; // map size (in #HeapWords covered)
37 const int _shifter; // map to char or bit 37 const int _shifter; // map to char or bit
38 VirtualSpace _virtual_space; // underlying the bit map 38 VirtualSpace _virtual_space; // underlying the bit map
137 MemRegion getAndClearMarkedRegion(HeapWord* addr, HeapWord* end_addr); 137 MemRegion getAndClearMarkedRegion(HeapWord* addr, HeapWord* end_addr);
138 }; 138 };
139 139
140 // Represents a marking stack used by the CM collector. 140 // Represents a marking stack used by the CM collector.
141 // Ideally this should be GrowableArray<> just like MSC's marking stack(s). 141 // Ideally this should be GrowableArray<> just like MSC's marking stack(s).
142 class CMMarkStack { 142 class CMMarkStack VALUE_OBJ_CLASS_SPEC {
143 ConcurrentMark* _cm; 143 ConcurrentMark* _cm;
144 oop* _base; // bottom of stack 144 oop* _base; // bottom of stack
145 jint _index; // one more than last occupied index 145 jint _index; // one more than last occupied index
146 jint _capacity; // max #elements 146 jint _capacity; // max #elements
147 jint _oops_do_bound; // Number of elements to include in next iteration. 147 jint _oops_do_bound; // Number of elements to include in next iteration.
235 // iterate over the oops in the mark stack, up to the bound recorded via 235 // iterate over the oops in the mark stack, up to the bound recorded via
236 // the call above. 236 // the call above.
237 void oops_do(OopClosure* f); 237 void oops_do(OopClosure* f);
238 }; 238 };
239 239
240 class CMRegionStack { 240 class CMRegionStack VALUE_OBJ_CLASS_SPEC {
241 MemRegion* _base; 241 MemRegion* _base;
242 jint _capacity; 242 jint _capacity;
243 jint _index; 243 jint _index;
244 jint _oops_do_bound; 244 jint _oops_do_bound;
245 bool _overflow; 245 bool _overflow;
310 } CMVerboseLevel; 310 } CMVerboseLevel;
311 311
312 312
313 class ConcurrentMarkThread; 313 class ConcurrentMarkThread;
314 314
315 class ConcurrentMark { 315 class ConcurrentMark: public CHeapObj {
316 friend class ConcurrentMarkThread; 316 friend class ConcurrentMarkThread;
317 friend class CMTask; 317 friend class CMTask;
318 friend class CMBitMapClosure; 318 friend class CMBitMapClosure;
319 friend class CSMarkOopClosure; 319 friend class CSMarkOopClosure;
320 friend class CMGlobalObjectClosure; 320 friend class CMGlobalObjectClosure;