src/hotspot/share/gc/shared/collectedHeap.cpp
branchepsilon-gc-branch
changeset 55934 912c55e702d6
parent 47998 fb0275c320a0
child 48105 8d15b1369c7a
equal deleted inserted replaced
55802:b2b4df384c83 55934:912c55e702d6
   233   }
   233   }
   234 }
   234 }
   235 
   235 
   236 void CollectedHeap::set_barrier_set(BarrierSet* barrier_set) {
   236 void CollectedHeap::set_barrier_set(BarrierSet* barrier_set) {
   237   _barrier_set = barrier_set;
   237   _barrier_set = barrier_set;
   238   oopDesc::set_bs(_barrier_set);
   238   BarrierSet::set_bs(barrier_set);
   239 }
   239 }
   240 
   240 
   241 void CollectedHeap::pre_initialize() {
   241 void CollectedHeap::pre_initialize() {
   242   // Used for ReduceInitialCardMarks (when COMPILER2 is used);
   242   // Used for ReduceInitialCardMarks (when COMPILER2 is used);
   243   // otherwise remains unused.
   243   // otherwise remains unused.
   244 #if defined(COMPILER2) || INCLUDE_JVMCI
   244 #if COMPILER2_OR_JVMCI
   245   _defer_initial_card_mark = is_server_compilation_mode_vm() &&  ReduceInitialCardMarks && can_elide_tlab_store_barriers()
   245   _defer_initial_card_mark = is_server_compilation_mode_vm() &&  ReduceInitialCardMarks && can_elide_tlab_store_barriers()
   246                              && (DeferInitialCardMark || card_mark_must_follow_store());
   246                              && (DeferInitialCardMark || card_mark_must_follow_store());
   247 #else
   247 #else
   248   assert(_defer_initial_card_mark == false, "Who would set it?");
   248   assert(_defer_initial_card_mark == false, "Who would set it?");
   249 #endif
   249 #endif
   311   HeapWord* obj = Universe::heap()->allocate_new_tlab(new_tlab_size);
   311   HeapWord* obj = Universe::heap()->allocate_new_tlab(new_tlab_size);
   312   if (obj == NULL) {
   312   if (obj == NULL) {
   313     return NULL;
   313     return NULL;
   314   }
   314   }
   315 
   315 
   316   AllocTracer::send_allocation_in_new_tlab_event(klass, new_tlab_size * HeapWordSize, size * HeapWordSize);
   316   AllocTracer::send_allocation_in_new_tlab(klass, obj, new_tlab_size * HeapWordSize, size * HeapWordSize, thread);
   317 
   317 
   318   if (ZeroTLAB) {
   318   if (ZeroTLAB) {
   319     // ..and clear it.
   319     // ..and clear it.
   320     Copy::zero_to_words(obj, new_tlab_size);
   320     Copy::zero_to_words(obj, new_tlab_size);
   321   } else {
   321   } else {
   543   assert(!use_tlab || Threads::first() != NULL,
   543   assert(!use_tlab || Threads::first() != NULL,
   544          "Attempt to fill tlabs before main thread has been added"
   544          "Attempt to fill tlabs before main thread has been added"
   545          " to threads list is doomed to failure!");
   545          " to threads list is doomed to failure!");
   546   for (JavaThread *thread = Threads::first(); thread; thread = thread->next()) {
   546   for (JavaThread *thread = Threads::first(); thread; thread = thread->next()) {
   547      if (use_tlab) thread->tlab().make_parsable(retire_tlabs);
   547      if (use_tlab) thread->tlab().make_parsable(retire_tlabs);
   548 #if defined(COMPILER2) || INCLUDE_JVMCI
   548 #if COMPILER2_OR_JVMCI
   549      // The deferred store barriers must all have been flushed to the
   549      // The deferred store barriers must all have been flushed to the
   550      // card-table (or other remembered set structure) before GC starts
   550      // card-table (or other remembered set structure) before GC starts
   551      // processing the card-table (or other remembered set).
   551      // processing the card-table (or other remembered set).
   552      if (deferred) flush_deferred_store_barrier(thread);
   552      if (deferred) flush_deferred_store_barrier(thread);
   553 #else
   553 #else