hotspot/src/share/vm/opto/graphKit.cpp
changeset 4030 4c471254865e
parent 3904 007a45522a7f
child 4450 6d700b859b3e
equal deleted inserted replaced
4028:be6959017765 4030:4c471254865e
  3184         && Universe::heap()->can_elide_permanent_oop_store_barriers())
  3184         && Universe::heap()->can_elide_permanent_oop_store_barriers())
  3185       // no store barrier needed, because no old-to-new ref created
  3185       // no store barrier needed, because no old-to-new ref created
  3186       return;
  3186       return;
  3187   }
  3187   }
  3188 
  3188 
       
  3189   if (use_ReduceInitialCardMarks()
       
  3190       && obj == just_allocated_object(control())) {
       
  3191     // We can skip marks on a freshly-allocated object in Eden.
       
  3192     // Keep this code in sync with maybe_defer_card_mark() in runtime.cpp.
       
  3193     // That routine informs GC to take appropriate compensating steps
       
  3194     // so as to make this card-mark elision safe.
       
  3195     return;
       
  3196   }
       
  3197 
  3189   if (!use_precise) {
  3198   if (!use_precise) {
  3190     // All card marks for a (non-array) instance are in one place:
  3199     // All card marks for a (non-array) instance are in one place:
  3191     adr = obj;
  3200     adr = obj;
  3192   }
  3201   }
  3193   // (Else it's an array (or unknown), and we want more precise card marks.)
  3202   // (Else it's an array (or unknown), and we want more precise card marks.)