256 // Can a compiler initialize a new object without store barriers? |
256 // Can a compiler initialize a new object without store barriers? |
257 // This permission only extends from the creation of a new object |
257 // This permission only extends from the creation of a new object |
258 // via a TLAB up to the first subsequent safepoint. |
258 // via a TLAB up to the first subsequent safepoint. |
259 virtual bool can_elide_tlab_store_barriers() const { |
259 virtual bool can_elide_tlab_store_barriers() const { |
260 return true; |
260 return true; |
|
261 } |
|
262 |
|
263 virtual bool card_mark_must_follow_store() const { |
|
264 return UseConcMarkSweepGC; |
261 } |
265 } |
262 |
266 |
263 // We don't need barriers for stores to objects in the |
267 // We don't need barriers for stores to objects in the |
264 // young gen and, a fortiori, for initializing stores to |
268 // young gen and, a fortiori, for initializing stores to |
265 // objects therein. This applies to {DefNew,ParNew}+{Tenured,CMS} |
269 // objects therein. This applies to {DefNew,ParNew}+{Tenured,CMS} |