mirror of
https://github.com/openjdk/jdk.git
synced 2026-07-02 15:20:27 +00:00
8387042: Shenandoah: Build time regression with LBE
Reviewed-by: wkemper, xpeng
This commit is contained in:
parent
b06aa89c60
commit
02c82240eb
@ -134,8 +134,8 @@ private:
|
||||
template <class T>
|
||||
inline void arraycopy_update(T* src, size_t count);
|
||||
|
||||
inline void clone_evacuation(oop src);
|
||||
inline void clone_update(oop src);
|
||||
template <bool EVAC>
|
||||
inline void clone_work(oop src);
|
||||
|
||||
template <class T, bool HAS_FWD, bool EVAC, bool ENQUEUE>
|
||||
inline void arraycopy_work(T* src, size_t count);
|
||||
|
||||
@ -469,18 +469,10 @@ public:
|
||||
virtual void do_oop(narrowOop* p) { do_oop_work(p); }
|
||||
};
|
||||
|
||||
void ShenandoahBarrierSet::clone_evacuation(oop obj) {
|
||||
assert(_heap->is_evacuation_in_progress(), "only during evacuation");
|
||||
template <bool EVAC>
|
||||
void ShenandoahBarrierSet::clone_work(oop obj) {
|
||||
if (need_bulk_update(cast_from_oop<HeapWord*>(obj))) {
|
||||
ShenandoahUpdateEvacForCloneOopClosure<true> cl;
|
||||
obj->oop_iterate(&cl);
|
||||
}
|
||||
}
|
||||
|
||||
void ShenandoahBarrierSet::clone_update(oop obj) {
|
||||
assert(_heap->is_update_refs_in_progress(), "only during update-refs");
|
||||
if (need_bulk_update(cast_from_oop<HeapWord*>(obj))) {
|
||||
ShenandoahUpdateEvacForCloneOopClosure<false> cl;
|
||||
ShenandoahUpdateEvacForCloneOopClosure<EVAC> cl;
|
||||
obj->oop_iterate(&cl);
|
||||
}
|
||||
}
|
||||
@ -494,9 +486,9 @@ void ShenandoahBarrierSet::AccessBarrier<decorators, BarrierSetT>::clone_in_heap
|
||||
if (gc_state != 0 && ShenandoahCloneBarrier) {
|
||||
ShenandoahBarrierSet* bs = ShenandoahBarrierSet::barrier_set();
|
||||
if ((gc_state & ShenandoahHeap::EVACUATION) != 0) {
|
||||
bs->clone_evacuation(src);
|
||||
bs->clone_work<true>(src);
|
||||
} else if ((gc_state & ShenandoahHeap::UPDATE_REFS) != 0) {
|
||||
bs->clone_update(src);
|
||||
bs->clone_work<false>(src);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user