Mercurial > hg > graal-jvmci-8
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; |