264 // young gen and, a fortiori, for initializing stores to |
264 // young gen and, a fortiori, for initializing stores to |
265 // objects therein. This applies to {DefNew,ParNew}+{Tenured,CMS} |
265 // objects therein. This applies to {DefNew,ParNew}+{Tenured,CMS} |
266 // only and may need to be re-examined in case other |
266 // only and may need to be re-examined in case other |
267 // kinds of collectors are implemented in the future. |
267 // kinds of collectors are implemented in the future. |
268 virtual bool can_elide_initializing_store_barrier(oop new_obj) { |
268 virtual bool can_elide_initializing_store_barrier(oop new_obj) { |
269 assert(UseParNewGC || UseSerialGC || UseConcMarkSweepGC, |
269 // We wanted to assert that:- |
270 "Check can_elide_initializing_store_barrier() for this collector"); |
270 // assert(UseParNewGC || UseSerialGC || UseConcMarkSweepGC, |
|
271 // "Check can_elide_initializing_store_barrier() for this collector"); |
|
272 // but unfortunately the flag UseSerialGC need not necessarily always |
|
273 // be set when DefNew+Tenured are being used. |
271 return is_in_youngest((void*)new_obj); |
274 return is_in_youngest((void*)new_obj); |
272 } |
275 } |
273 |
276 |
274 // Can a compiler elide a store barrier when it writes |
277 // Can a compiler elide a store barrier when it writes |
275 // a permanent oop into the heap? Applies when the compiler |
278 // a permanent oop into the heap? Applies when the compiler |