< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp
Print this page
rev 51736 : Traversal: Purge arraycopy 'optimization'
*** 120,132 ****
if (!ShenandoahCloneBarrier) return;
if (!need_update_refs_barrier()) return;
if (_heap->is_concurrent_traversal_in_progress()) {
- if (count > ShenandoahEnqueueArrayCopyThreshold) {
- _heap->traversal_gc()->push_arraycopy(start, count);
- } else {
ShenandoahEvacOOMScope oom_evac_scope;
if (UseShenandoahMatrix) {
if (UseCompressedOops) {
write_ref_array_loop<narrowOop, /* matrix = */ true, /* wb = */ true>(start, count);
} else {
--- 120,129 ----
*** 137,147 ****
write_ref_array_loop<narrowOop, /* matrix = */ false, /* wb = */ true>(start, count);
} else {
write_ref_array_loop<oop, /* matrix = */ false, /* wb = */ true>(start, count);
}
}
- }
} else {
if (UseShenandoahMatrix) {
if (UseCompressedOops) {
write_ref_array_loop<narrowOop, /* matrix = */ true, /* wb = */ false>(start, count);
} else {
--- 134,143 ----
*** 228,249 ****
// that potentially need to be updated.
oop obj = oop(mr.start());
assert(oopDesc::is_oop(obj), "must be an oop");
if (_heap->is_concurrent_traversal_in_progress()) {
- if ((size_t) obj->size() > ShenandoahEnqueueArrayCopyThreshold) {
- _heap->traversal_gc()->push_arraycopy(mr.start(), 0);
- } else {
ShenandoahEvacOOMScope oom_evac_scope;
if (UseShenandoahMatrix) {
ShenandoahUpdateRefsForOopClosure</* matrix = */ true, /* wb = */ true> cl;
obj->oop_iterate(&cl);
} else {
ShenandoahUpdateRefsForOopClosure</* matrix = */ false, /* wb = */ true> cl;
obj->oop_iterate(&cl);
}
- }
} else {
if (UseShenandoahMatrix) {
ShenandoahUpdateRefsForOopClosure</* matrix = */ true, /* wb = */ false> cl;
obj->oop_iterate(&cl);
} else {
--- 224,241 ----
< prev index next >