< prev index next >

src/share/vm/gc/parallel/psParallelCompact.cpp

Print this page
rev 13071 : [mq]: webrev.1


1020 
1021   ModRefBarrierSet* modBS = barrier_set_cast<ModRefBarrierSet>(heap->barrier_set());
1022   MemRegion old_mr = heap->old_gen()->reserved();
1023   if (young_gen_empty) {
1024     modBS->clear(MemRegion(old_mr.start(), old_mr.end()));
1025   } else {
1026     modBS->invalidate(MemRegion(old_mr.start(), old_mr.end()));
1027   }
1028 
1029   // Delete metaspaces for unloaded class loaders and clean up loader_data graph
1030   ClassLoaderDataGraph::purge();
1031   MetaspaceAux::verify_metrics();
1032 
1033   CodeCache::gc_epilogue();
1034   JvmtiExport::gc_epilogue();
1035 
1036 #if defined(COMPILER2) || INCLUDE_JVMCI
1037   DerivedPointerTable::update_pointers();
1038 #endif
1039 
1040   ref_processor()->enqueue_discovered_references(NULL);
1041 
1042   if (ZapUnusedHeapArea) {
1043     heap->gen_mangle_unused_area();
1044   }
1045 
1046   // Update time of last GC
1047   reset_millis_since_last_gc();
1048 }
1049 
1050 HeapWord*
1051 PSParallelCompact::compute_dense_prefix_via_density(const SpaceId id,
1052                                                     bool maximum_compaction)
1053 {
1054   const size_t region_size = ParallelCompactData::RegionSize;
1055   const ParallelCompactData& sd = summary_data();
1056 
1057   const MutableSpace* const space = _space_info[id].space();
1058   HeapWord* const top_aligned_up = sd.region_align_up(space->top());
1059   const RegionData* const beg_cp = sd.addr_to_region_ptr(space->bottom());
1060   const RegionData* const end_cp = sd.addr_to_region_ptr(top_aligned_up);




1020 
1021   ModRefBarrierSet* modBS = barrier_set_cast<ModRefBarrierSet>(heap->barrier_set());
1022   MemRegion old_mr = heap->old_gen()->reserved();
1023   if (young_gen_empty) {
1024     modBS->clear(MemRegion(old_mr.start(), old_mr.end()));
1025   } else {
1026     modBS->invalidate(MemRegion(old_mr.start(), old_mr.end()));
1027   }
1028 
1029   // Delete metaspaces for unloaded class loaders and clean up loader_data graph
1030   ClassLoaderDataGraph::purge();
1031   MetaspaceAux::verify_metrics();
1032 
1033   CodeCache::gc_epilogue();
1034   JvmtiExport::gc_epilogue();
1035 
1036 #if defined(COMPILER2) || INCLUDE_JVMCI
1037   DerivedPointerTable::update_pointers();
1038 #endif
1039 
1040   ref_processor()->enqueue_discovered_references(NULL, &_gc_timer);
1041 
1042   if (ZapUnusedHeapArea) {
1043     heap->gen_mangle_unused_area();
1044   }
1045 
1046   // Update time of last GC
1047   reset_millis_since_last_gc();
1048 }
1049 
1050 HeapWord*
1051 PSParallelCompact::compute_dense_prefix_via_density(const SpaceId id,
1052                                                     bool maximum_compaction)
1053 {
1054   const size_t region_size = ParallelCompactData::RegionSize;
1055   const ParallelCompactData& sd = summary_data();
1056 
1057   const MutableSpace* const space = _space_info[id].space();
1058   HeapWord* const top_aligned_up = sd.region_align_up(space->top());
1059   const RegionData* const beg_cp = sd.addr_to_region_ptr(space->bottom());
1060   const RegionData* const end_cp = sd.addr_to_region_ptr(top_aligned_up);


< prev index next >