src/hotspot/share/gc/parallel/psParallelCompact.cpp
changeset 50752 9d62da00bf15
parent 50606 8f1d5d706bdd
child 51332 c25572739e7c
equal deleted inserted replaced
50751:d9132bdf6c30 50752:9d62da00bf15
    22  *
    22  *
    23  */
    23  */
    24 
    24 
    25 #include "precompiled.hpp"
    25 #include "precompiled.hpp"
    26 #include "aot/aotLoader.hpp"
    26 #include "aot/aotLoader.hpp"
       
    27 #include "classfile/javaClasses.inline.hpp"
    27 #include "classfile/stringTable.hpp"
    28 #include "classfile/stringTable.hpp"
    28 #include "classfile/symbolTable.hpp"
    29 #include "classfile/symbolTable.hpp"
    29 #include "classfile/systemDictionary.hpp"
    30 #include "classfile/systemDictionary.hpp"
    30 #include "code/codeCache.hpp"
    31 #include "code/codeCache.hpp"
    31 #include "gc/parallel/gcTaskManager.hpp"
    32 #include "gc/parallel/gcTaskManager.hpp"
    51 #include "gc/shared/referenceProcessor.hpp"
    52 #include "gc/shared/referenceProcessor.hpp"
    52 #include "gc/shared/referenceProcessorPhaseTimes.hpp"
    53 #include "gc/shared/referenceProcessorPhaseTimes.hpp"
    53 #include "gc/shared/spaceDecorator.hpp"
    54 #include "gc/shared/spaceDecorator.hpp"
    54 #include "gc/shared/weakProcessor.hpp"
    55 #include "gc/shared/weakProcessor.hpp"
    55 #include "logging/log.hpp"
    56 #include "logging/log.hpp"
       
    57 #include "memory/iterator.inline.hpp"
    56 #include "memory/resourceArea.hpp"
    58 #include "memory/resourceArea.hpp"
    57 #include "oops/access.inline.hpp"
    59 #include "oops/access.inline.hpp"
       
    60 #include "oops/instanceClassLoaderKlass.inline.hpp"
    58 #include "oops/instanceKlass.inline.hpp"
    61 #include "oops/instanceKlass.inline.hpp"
    59 #include "oops/instanceMirrorKlass.inline.hpp"
    62 #include "oops/instanceMirrorKlass.inline.hpp"
    60 #include "oops/methodData.hpp"
    63 #include "oops/methodData.hpp"
    61 #include "oops/objArrayKlass.inline.hpp"
    64 #include "oops/objArrayKlass.inline.hpp"
    62 #include "oops/oop.inline.hpp"
    65 #include "oops/oop.inline.hpp"
  3067   update_state(words);
  3070   update_state(words);
  3068 }
  3071 }
  3069 
  3072 
  3070 void InstanceKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) {
  3073 void InstanceKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) {
  3071   PSParallelCompact::AdjustPointerClosure closure(cm);
  3074   PSParallelCompact::AdjustPointerClosure closure(cm);
  3072   oop_oop_iterate_oop_maps<true>(obj, &closure);
  3075   if (UseCompressedOops) {
       
  3076     oop_oop_iterate_oop_maps<narrowOop>(obj, &closure);
       
  3077   } else {
       
  3078     oop_oop_iterate_oop_maps<oop>(obj, &closure);
       
  3079   }
  3073 }
  3080 }
  3074 
  3081 
  3075 void InstanceMirrorKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) {
  3082 void InstanceMirrorKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) {
  3076   InstanceKlass::oop_pc_update_pointers(obj, cm);
  3083   InstanceKlass::oop_pc_update_pointers(obj, cm);
  3077 
  3084 
  3078   PSParallelCompact::AdjustPointerClosure closure(cm);
  3085   PSParallelCompact::AdjustPointerClosure closure(cm);
  3079   oop_oop_iterate_statics<true>(obj, &closure);
  3086   if (UseCompressedOops) {
       
  3087     oop_oop_iterate_statics<narrowOop>(obj, &closure);
       
  3088   } else {
       
  3089     oop_oop_iterate_statics<oop>(obj, &closure);
       
  3090   }
  3080 }
  3091 }
  3081 
  3092 
  3082 void InstanceClassLoaderKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) {
  3093 void InstanceClassLoaderKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) {
  3083   InstanceKlass::oop_pc_update_pointers(obj, cm);
  3094   InstanceKlass::oop_pc_update_pointers(obj, cm);
  3084 }
  3095 }
  3116 }
  3127 }
  3117 
  3128 
  3118 void ObjArrayKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) {
  3129 void ObjArrayKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) {
  3119   assert(obj->is_objArray(), "obj must be obj array");
  3130   assert(obj->is_objArray(), "obj must be obj array");
  3120   PSParallelCompact::AdjustPointerClosure closure(cm);
  3131   PSParallelCompact::AdjustPointerClosure closure(cm);
  3121   oop_oop_iterate_elements<true>(objArrayOop(obj), &closure);
  3132   if (UseCompressedOops) {
       
  3133     oop_oop_iterate_elements<narrowOop>(objArrayOop(obj), &closure);
       
  3134   } else {
       
  3135     oop_oop_iterate_elements<oop>(objArrayOop(obj), &closure);
       
  3136   }
  3122 }
  3137 }
  3123 
  3138 
  3124 void TypeArrayKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) {
  3139 void TypeArrayKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) {
  3125   assert(obj->is_typeArray(),"must be a type array");
  3140   assert(obj->is_typeArray(),"must be a type array");
  3126 }
  3141 }