comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @ 3988:246daf2c601d

7005808: G1: re-enable ReduceInitialCardMarks for G1 Summary: Remove the extra guard to allow G1 to use ReduceInitialCardMarks Reviewed-by: jmasa, tonyp, johnc, ysr
author brutisso
date Wed, 28 Sep 2011 08:21:30 +0200
parents 8229bd737950
children 8aae2050e83e
comparison
equal deleted inserted replaced
3987:fd65bc7c09b6 3988:246daf2c601d
1335 // of this implementation depends crucially on being able to 1335 // of this implementation depends crucially on being able to
1336 // answer very efficiently in constant time whether a piece of 1336 // answer very efficiently in constant time whether a piece of
1337 // storage in the heap comes from a young region or not. 1337 // storage in the heap comes from a young region or not.
1338 // See ReduceInitialCardMarks. 1338 // See ReduceInitialCardMarks.
1339 virtual bool can_elide_tlab_store_barriers() const { 1339 virtual bool can_elide_tlab_store_barriers() const {
1340 // 6920090: Temporarily disabled, because of lingering 1340 return true;
1341 // instabilities related to RICM with G1. In the
1342 // interim, the option ReduceInitialCardMarksForG1
1343 // below is left solely as a debugging device at least
1344 // until 6920109 fixes the instabilities.
1345 return ReduceInitialCardMarksForG1;
1346 } 1341 }
1347 1342
1348 virtual bool card_mark_must_follow_store() const { 1343 virtual bool card_mark_must_follow_store() const {
1349 return true; 1344 return true;
1350 } 1345 }
1364 // in the young gen: for the SATB pre-barrier, there is no 1359 // in the young gen: for the SATB pre-barrier, there is no
1365 // pre-value that needs to be remembered; for the remembered-set 1360 // pre-value that needs to be remembered; for the remembered-set
1366 // update logging post-barrier, we don't maintain remembered set 1361 // update logging post-barrier, we don't maintain remembered set
1367 // information for young gen objects. 1362 // information for young gen objects.
1368 virtual bool can_elide_initializing_store_barrier(oop new_obj) { 1363 virtual bool can_elide_initializing_store_barrier(oop new_obj) {
1369 // Re 6920090, 6920109 above.
1370 assert(ReduceInitialCardMarksForG1, "Else cannot be here");
1371 return is_in_young(new_obj); 1364 return is_in_young(new_obj);
1372 } 1365 }
1373 1366
1374 // Can a compiler elide a store barrier when it writes 1367 // Can a compiler elide a store barrier when it writes
1375 // a permanent oop into the heap? Applies when the compiler 1368 // a permanent oop into the heap? Applies when the compiler