Skip to content
Permalink
Browse files
8242082: Shenandoah: Purge Traversal mode
Reviewed-by: shade
  • Loading branch information
rkennke committed Apr 3, 2020
1 parent c09b0a7 commit 553ea1e891a645a2a122ebfe898e8ac110adb9e6
Showing 82 changed files with 25 additions and 3,158 deletions.
@@ -157,7 +157,7 @@ void ShenandoahBarrierSetAssembler::satb_write_barrier_pre(MacroAssembler* masm,
Address buffer(thread, in_bytes(ShenandoahThreadLocalData::satb_mark_queue_buffer_offset()));

Address gc_state(thread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
__ testb(gc_state, ShenandoahHeap::MARKING | ShenandoahHeap::TRAVERSAL);
__ testb(gc_state, ShenandoahHeap::MARKING);
__ jcc(Assembler::zero, done);

// Do we need to load the previous value?
@@ -892,7 +892,7 @@ void ShenandoahBarrierSetAssembler::generate_c1_pre_barrier_runtime_stub(StubAss

// Is SATB still active?
Address gc_state(thread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
__ testb(gc_state, ShenandoahHeap::MARKING | ShenandoahHeap::TRAVERSAL);
__ testb(gc_state, ShenandoahHeap::MARKING);
__ jcc(Assembler::zero, done);

// Can we store original value in the thread's buffer?
@@ -111,9 +111,6 @@ const char* GCCause::to_string(GCCause::Cause cause) {
case _shenandoah_concurrent_gc:
return "Concurrent GC";

case _shenandoah_traversal_gc:
return "Traversal GC";

case _shenandoah_upgrade_to_full_gc:
return "Upgrade To Full GC";

@@ -79,7 +79,6 @@ class GCCause : public AllStatic {
_shenandoah_stop_vm,
_shenandoah_allocation_failure_evac,
_shenandoah_concurrent_gc,
_shenandoah_traversal_gc,
_shenandoah_upgrade_to_full_gc,

_z_timer,
@@ -135,9 +135,7 @@ LIR_Opr ShenandoahBarrierSetC1::load_reference_barrier_impl(LIRGenerator* gen, L
// Read and check the gc-state-flag.
LIR_Opr flag_val = gen->new_register(T_INT);
__ load(active_flag_addr, flag_val);
LIR_Opr mask = LIR_OprFact::intConst(ShenandoahHeap::HAS_FORWARDED |
ShenandoahHeap::EVACUATION |
ShenandoahHeap::TRAVERSAL);
LIR_Opr mask = LIR_OprFact::intConst(ShenandoahHeap::HAS_FORWARDED);
LIR_Opr mask_reg = gen->new_register(T_INT);
__ move(mask, mask_reg);

@@ -225,8 +223,7 @@ void ShenandoahBarrierSetC1::load_at_resolved(LIRAccess& access, LIR_Opr result)
bool is_weak = (decorators & ON_WEAK_OOP_REF) != 0;
bool is_phantom = (decorators & ON_PHANTOM_OOP_REF) != 0;
bool is_anonymous = (decorators & ON_UNKNOWN_OOP_REF) != 0;
bool is_traversal_mode = ShenandoahHeap::heap()->is_traversal_mode();
bool keep_alive = (decorators & AS_NO_KEEPALIVE) == 0 || is_traversal_mode;
bool keep_alive = (decorators & AS_NO_KEEPALIVE) == 0;

if ((is_weak || is_phantom || is_anonymous) && keep_alive) {
// Register the value in the referent field with the pre-barrier
@@ -566,8 +566,7 @@ Node* ShenandoahBarrierSetC2::load_at_resolved(C2Access& access, const Type* val

bool unknown = (decorators & ON_UNKNOWN_OOP_REF) != 0;
bool on_weak_ref = (decorators & (ON_WEAK_OOP_REF | ON_PHANTOM_OOP_REF)) != 0;
bool is_traversal_mode = ShenandoahHeap::heap()->is_traversal_mode();
bool keep_alive = (decorators & AS_NO_KEEPALIVE) == 0 || is_traversal_mode;
bool keep_alive = (decorators & AS_NO_KEEPALIVE) == 0;

// If we are reading the value of the referent field of a Reference
// object (either by using Unsafe directly or through reflection)

This file was deleted.

This file was deleted.

0 comments on commit 553ea1e

Please sign in to comment.