equal
deleted
inserted
replaced
1002 // of this implementation depends crucially on being able to |
1002 // of this implementation depends crucially on being able to |
1003 // answer very efficiently in constant time whether a piece of |
1003 // answer very efficiently in constant time whether a piece of |
1004 // storage in the heap comes from a young region or not. |
1004 // storage in the heap comes from a young region or not. |
1005 // See ReduceInitialCardMarks. |
1005 // See ReduceInitialCardMarks. |
1006 virtual bool can_elide_tlab_store_barriers() const { |
1006 virtual bool can_elide_tlab_store_barriers() const { |
1007 return true; |
1007 // 6920090: Temporarily disabled, because of lingering |
|
1008 // instabilities related to RICM with G1. In the |
|
1009 // interim, the option ReduceInitialCardMarksForG1 |
|
1010 // below is left solely as a debugging device at least |
|
1011 // until 6920109 fixes the instabilities. |
|
1012 return ReduceInitialCardMarksForG1; |
1008 } |
1013 } |
1009 |
1014 |
1010 virtual bool card_mark_must_follow_store() const { |
1015 virtual bool card_mark_must_follow_store() const { |
1011 return true; |
1016 return true; |
1012 } |
1017 } |
1024 // G1 does not have any "young" objects, should not elide |
1029 // G1 does not have any "young" objects, should not elide |
1025 // the rs logging barrier and so should always answer false below. |
1030 // the rs logging barrier and so should always answer false below. |
1026 // However, non-generational G1 (-XX:-G1Gen) appears to have |
1031 // However, non-generational G1 (-XX:-G1Gen) appears to have |
1027 // bit-rotted so was not tested below. |
1032 // bit-rotted so was not tested below. |
1028 virtual bool can_elide_initializing_store_barrier(oop new_obj) { |
1033 virtual bool can_elide_initializing_store_barrier(oop new_obj) { |
|
1034 // Re 6920090, 6920109 above. |
|
1035 assert(ReduceInitialCardMarksForG1, "Else cannot be here"); |
1029 assert(G1Gen || !is_in_young(new_obj), |
1036 assert(G1Gen || !is_in_young(new_obj), |
1030 "Non-generational G1 should never return true below"); |
1037 "Non-generational G1 should never return true below"); |
1031 return is_in_young(new_obj); |
1038 return is_in_young(new_obj); |
1032 } |
1039 } |
1033 |
1040 |