< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp
Print this page
rev 51546 : Some optimization to traversal-marking
rev 51547 : Refactor to group marking bitmap and TAMS structure in one class ShenandoahMarkingContext
rev 51548 : Avoid indirection to next-mark-context
*** 35,45 ****
#include "gc/shenandoah/shenandoahTaskqueue.hpp"
#include "memory/iterator.inline.hpp"
#include "oops/oop.inline.hpp"
template <class T, bool STRING_DEDUP, bool DEGEN, bool UPDATE_MATRIX>
! void ShenandoahTraversalGC::process_oop(T* p, Thread* thread, ShenandoahObjToScanQueue* queue, oop base_obj) {
T o = RawAccess<>::oop_load(p);
if (!CompressedOops::is_null(o)) {
oop obj = CompressedOops::decode_not_null(o);
bool update_matrix = true;
if (DEGEN) {
--- 35,45 ----
#include "gc/shenandoah/shenandoahTaskqueue.hpp"
#include "memory/iterator.inline.hpp"
#include "oops/oop.inline.hpp"
template <class T, bool STRING_DEDUP, bool DEGEN, bool UPDATE_MATRIX>
! void ShenandoahTraversalGC::process_oop(T* p, Thread* thread, ShenandoahObjToScanQueue* queue, ShenandoahMarkingContext* const mark_context, oop base_obj) {
T o = RawAccess<>::oop_load(p);
if (!CompressedOops::is_null(o)) {
oop obj = CompressedOops::decode_not_null(o);
bool update_matrix = true;
if (DEGEN) {
*** 75,85 ****
if (src != NULL) {
_matrix->set_connected(src, obj);
}
}
! if (_heap->next_marking_context()->mark(obj)) {
bool succeeded = queue->push(ShenandoahMarkTask(obj));
assert(succeeded, "must succeed to push to task queue");
if (STRING_DEDUP && ShenandoahStringDedup::is_candidate(obj) && !_heap->cancelled_gc()) {
assert(ShenandoahStringDedup::is_enabled(), "Must be enabled");
--- 75,85 ----
if (src != NULL) {
_matrix->set_connected(src, obj);
}
}
! if (mark_context->mark(obj)) {
bool succeeded = queue->push(ShenandoahMarkTask(obj));
assert(succeeded, "must succeed to push to task queue");
if (STRING_DEDUP && ShenandoahStringDedup::is_candidate(obj) && !_heap->cancelled_gc()) {
assert(ShenandoahStringDedup::is_enabled(), "Must be enabled");
< prev index next >