< prev index next >

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

Print this page
rev 13014 : imported patch 8180755-remove-bitmap-inline-hpp-include


  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "aot/aotLoader.hpp"
  27 #include "classfile/stringTable.hpp"
  28 #include "classfile/symbolTable.hpp"
  29 #include "classfile/systemDictionary.hpp"
  30 #include "code/codeCache.hpp"
  31 #include "gc/parallel/gcTaskManager.hpp"
  32 #include "gc/parallel/parallelScavengeHeap.inline.hpp"

  33 #include "gc/parallel/pcTasks.hpp"
  34 #include "gc/parallel/psAdaptiveSizePolicy.hpp"
  35 #include "gc/parallel/psCompactionManager.inline.hpp"
  36 #include "gc/parallel/psMarkSweep.hpp"
  37 #include "gc/parallel/psMarkSweepDecorator.hpp"
  38 #include "gc/parallel/psOldGen.hpp"
  39 #include "gc/parallel/psParallelCompact.inline.hpp"
  40 #include "gc/parallel/psPromotionManager.inline.hpp"
  41 #include "gc/parallel/psScavenge.hpp"
  42 #include "gc/parallel/psYoungGen.hpp"
  43 #include "gc/shared/gcCause.hpp"
  44 #include "gc/shared/gcHeapSummary.hpp"
  45 #include "gc/shared/gcId.hpp"
  46 #include "gc/shared/gcLocker.inline.hpp"
  47 #include "gc/shared/gcTimer.hpp"
  48 #include "gc/shared/gcTrace.hpp"
  49 #include "gc/shared/gcTraceTime.inline.hpp"
  50 #include "gc/shared/isGCActiveMark.hpp"
  51 #include "gc/shared/referencePolicy.hpp"
  52 #include "gc/shared/referenceProcessor.hpp"


3136 
3137   update_state(words);
3138   assert(destination() == (HeapWord*)moved_oop + moved_oop->size(), "sanity");
3139   return is_full() ? ParMarkBitMap::full : ParMarkBitMap::incomplete;
3140 }
3141 
3142 UpdateOnlyClosure::UpdateOnlyClosure(ParMarkBitMap* mbm,
3143                                      ParCompactionManager* cm,
3144                                      PSParallelCompact::SpaceId space_id) :
3145   ParMarkBitMapClosure(mbm, cm),
3146   _space_id(space_id),
3147   _start_array(PSParallelCompact::start_array(space_id))
3148 {
3149 }
3150 
3151 // Updates the references in the object to their new values.
3152 ParMarkBitMapClosure::IterationStatus
3153 UpdateOnlyClosure::do_addr(HeapWord* addr, size_t words) {
3154   do_addr(addr);
3155   return ParMarkBitMap::incomplete;








3156 }
3157 
3158 ParMarkBitMapClosure::IterationStatus
3159 FillClosure::do_addr(HeapWord* addr, size_t size) {
3160   CollectedHeap::fill_with_objects(addr, size);
3161   HeapWord* const end = addr + size;
3162   do {
3163     _start_array->allocate_block(addr);
3164     addr += oop(addr)->size();
3165   } while (addr < end);
3166   return ParMarkBitMap::incomplete;
3167 }


  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "aot/aotLoader.hpp"
  27 #include "classfile/stringTable.hpp"
  28 #include "classfile/symbolTable.hpp"
  29 #include "classfile/systemDictionary.hpp"
  30 #include "code/codeCache.hpp"
  31 #include "gc/parallel/gcTaskManager.hpp"
  32 #include "gc/parallel/parallelScavengeHeap.inline.hpp"
  33 #include "gc/parallel/parMarkBitMap.inline.hpp"
  34 #include "gc/parallel/pcTasks.hpp"
  35 #include "gc/parallel/psAdaptiveSizePolicy.hpp"
  36 #include "gc/parallel/psCompactionManager.inline.hpp"
  37 #include "gc/parallel/psMarkSweep.hpp"
  38 #include "gc/parallel/psMarkSweepDecorator.hpp"
  39 #include "gc/parallel/psOldGen.hpp"
  40 #include "gc/parallel/psParallelCompact.inline.hpp"
  41 #include "gc/parallel/psPromotionManager.inline.hpp"
  42 #include "gc/parallel/psScavenge.hpp"
  43 #include "gc/parallel/psYoungGen.hpp"
  44 #include "gc/shared/gcCause.hpp"
  45 #include "gc/shared/gcHeapSummary.hpp"
  46 #include "gc/shared/gcId.hpp"
  47 #include "gc/shared/gcLocker.inline.hpp"
  48 #include "gc/shared/gcTimer.hpp"
  49 #include "gc/shared/gcTrace.hpp"
  50 #include "gc/shared/gcTraceTime.inline.hpp"
  51 #include "gc/shared/isGCActiveMark.hpp"
  52 #include "gc/shared/referencePolicy.hpp"
  53 #include "gc/shared/referenceProcessor.hpp"


3137 
3138   update_state(words);
3139   assert(destination() == (HeapWord*)moved_oop + moved_oop->size(), "sanity");
3140   return is_full() ? ParMarkBitMap::full : ParMarkBitMap::incomplete;
3141 }
3142 
3143 UpdateOnlyClosure::UpdateOnlyClosure(ParMarkBitMap* mbm,
3144                                      ParCompactionManager* cm,
3145                                      PSParallelCompact::SpaceId space_id) :
3146   ParMarkBitMapClosure(mbm, cm),
3147   _space_id(space_id),
3148   _start_array(PSParallelCompact::start_array(space_id))
3149 {
3150 }
3151 
3152 // Updates the references in the object to their new values.
3153 ParMarkBitMapClosure::IterationStatus
3154 UpdateOnlyClosure::do_addr(HeapWord* addr, size_t words) {
3155   do_addr(addr);
3156   return ParMarkBitMap::incomplete;
3157 }
3158 
3159 FillClosure::FillClosure(ParCompactionManager* cm, PSParallelCompact::SpaceId space_id) :
3160   ParMarkBitMapClosure(PSParallelCompact::mark_bitmap(), cm),
3161   _start_array(PSParallelCompact::start_array(space_id))
3162 {
3163   assert(space_id == PSParallelCompact::old_space_id,
3164          "cannot use FillClosure in the young gen");
3165 }
3166 
3167 ParMarkBitMapClosure::IterationStatus
3168 FillClosure::do_addr(HeapWord* addr, size_t size) {
3169   CollectedHeap::fill_with_objects(addr, size);
3170   HeapWord* const end = addr + size;
3171   do {
3172     _start_array->allocate_block(addr);
3173     addr += oop(addr)->size();
3174   } while (addr < end);
3175   return ParMarkBitMap::incomplete;
3176 }
< prev index next >