Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp @ 6725:da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author | coleenp |
---|---|
date | Sat, 01 Sep 2012 13:25:18 -0400 |
parents | d2a62e0f25eb |
children | 685df3c6f84b |
comparison
equal
deleted
inserted
replaced
6724:36d1d483d5d6 | 6725:da91efe96a93 |
---|---|
68 class CompactibleFreeListSpace: public CompactibleSpace { | 68 class CompactibleFreeListSpace: public CompactibleSpace { |
69 friend class VMStructs; | 69 friend class VMStructs; |
70 friend class ConcurrentMarkSweepGeneration; | 70 friend class ConcurrentMarkSweepGeneration; |
71 friend class ASConcurrentMarkSweepGeneration; | 71 friend class ASConcurrentMarkSweepGeneration; |
72 friend class CMSCollector; | 72 friend class CMSCollector; |
73 friend class CMSPermGenGen; | |
74 // Local alloc buffer for promotion into this space. | 73 // Local alloc buffer for promotion into this space. |
75 friend class CFLS_LAB; | 74 friend class CFLS_LAB; |
76 | 75 |
77 // "Size" of chunks of work (executed during parallel remark phases | 76 // "Size" of chunks of work (executed during parallel remark phases |
78 // of CMS collection); this probably belongs in CMSCollector, although | 77 // of CMS collection); this probably belongs in CMSCollector, although |
347 | 346 |
348 // mutual exclusion support | 347 // mutual exclusion support |
349 Mutex* freelistLock() const { return &_freelistLock; } | 348 Mutex* freelistLock() const { return &_freelistLock; } |
350 | 349 |
351 // Iteration support | 350 // Iteration support |
352 void oop_iterate(MemRegion mr, OopClosure* cl); | 351 void oop_iterate(MemRegion mr, ExtendedOopClosure* cl); |
353 void oop_iterate(OopClosure* cl); | 352 void oop_iterate(ExtendedOopClosure* cl); |
354 | 353 |
355 void object_iterate(ObjectClosure* blk); | 354 void object_iterate(ObjectClosure* blk); |
356 // Apply the closure to each object in the space whose references | 355 // Apply the closure to each object in the space whose references |
357 // point to objects in the heap. The usage of CompactibleFreeListSpace | 356 // point to objects in the heap. The usage of CompactibleFreeListSpace |
358 // by the ConcurrentMarkSweepGeneration for concurrent GC's allows | 357 // by the ConcurrentMarkSweepGeneration for concurrent GC's allows |
375 ObjectClosureCareful* cl); | 374 ObjectClosureCareful* cl); |
376 virtual HeapWord* | 375 virtual HeapWord* |
377 object_iterate_careful(ObjectClosureCareful* cl); | 376 object_iterate_careful(ObjectClosureCareful* cl); |
378 | 377 |
379 // Override: provides a DCTO_CL specific to this kind of space. | 378 // Override: provides a DCTO_CL specific to this kind of space. |
380 DirtyCardToOopClosure* new_dcto_cl(OopClosure* cl, | 379 DirtyCardToOopClosure* new_dcto_cl(ExtendedOopClosure* cl, |
381 CardTableModRefBS::PrecisionStyle precision, | 380 CardTableModRefBS::PrecisionStyle precision, |
382 HeapWord* boundary); | 381 HeapWord* boundary); |
383 | 382 |
384 void blk_iterate(BlkClosure* cl); | 383 void blk_iterate(BlkClosure* cl); |
385 void blk_iterate_careful(BlkClosureCareful* cl); | 384 void blk_iterate_careful(BlkClosureCareful* cl); |