src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
Print this page
rev 2723 : 7005808: G1: re-enable ReduceInitialCardMarks for G1
Summary: Remove the extra guard to allow G1 to use ReduceInitialCardMarks
Reviewed-by: duke
*** 1335,1350 ****
// of this implementation depends crucially on being able to
// answer very efficiently in constant time whether a piece of
// storage in the heap comes from a young region or not.
// See ReduceInitialCardMarks.
virtual bool can_elide_tlab_store_barriers() const {
! // 6920090: Temporarily disabled, because of lingering
! // instabilities related to RICM with G1. In the
! // interim, the option ReduceInitialCardMarksForG1
! // below is left solely as a debugging device at least
! // until 6920109 fixes the instabilities.
! return ReduceInitialCardMarksForG1;
}
virtual bool card_mark_must_follow_store() const {
return true;
}
--- 1335,1345 ----
// of this implementation depends crucially on being able to
// answer very efficiently in constant time whether a piece of
// storage in the heap comes from a young region or not.
// See ReduceInitialCardMarks.
virtual bool can_elide_tlab_store_barriers() const {
! return true;
}
virtual bool card_mark_must_follow_store() const {
return true;
}
*** 1364,1375 ****
// in the young gen: for the SATB pre-barrier, there is no
// pre-value that needs to be remembered; for the remembered-set
// update logging post-barrier, we don't maintain remembered set
// information for young gen objects.
virtual bool can_elide_initializing_store_barrier(oop new_obj) {
- // Re 6920090, 6920109 above.
- assert(ReduceInitialCardMarksForG1, "Else cannot be here");
return is_in_young(new_obj);
}
// Can a compiler elide a store barrier when it writes
// a permanent oop into the heap? Applies when the compiler
--- 1359,1368 ----