< prev index next >

src/hotspot/share/opto/graphKit.cpp

G1BarrierSet_merge

*** 23,34 **** */ #include "precompiled.hpp" #include "ci/ciUtilities.hpp" #include "compiler/compileLog.hpp" #include "gc/g1/g1CardTable.hpp" - #include "gc/g1/g1SATBCardTableModRefBS.hpp" #include "gc/g1/heapRegion.hpp" #include "gc/shared/barrierSet.hpp" #include "gc/shared/cardTable.hpp" #include "gc/shared/cardTableModRefBS.hpp" #include "gc/shared/collectedHeap.hpp" --- 23,34 ---- */ #include "precompiled.hpp" #include "ci/ciUtilities.hpp" #include "compiler/compileLog.hpp" + #include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1CardTable.hpp" #include "gc/g1/heapRegion.hpp" #include "gc/shared/barrierSet.hpp" #include "gc/shared/cardTable.hpp" #include "gc/shared/cardTableModRefBS.hpp" #include "gc/shared/collectedHeap.hpp" ***************
*** 1559,1569 **** BasicType bt) { BarrierSet* bs = Universe::heap()->barrier_set(); set_control(ctl); switch (bs->kind()) { ! case BarrierSet::G1SATBCTLogging: g1_write_barrier_pre(do_load, obj, adr, adr_idx, val, val_type, pre_val, bt); break; case BarrierSet::CardTableModRef: break; --- 1559,1569 ---- BasicType bt) { BarrierSet* bs = Universe::heap()->barrier_set(); set_control(ctl); switch (bs->kind()) { ! case BarrierSet::G1BarrierSet: g1_write_barrier_pre(do_load, obj, adr, adr_idx, val, val_type, pre_val, bt); break; case BarrierSet::CardTableModRef: break; ***************
*** 1575,1585 **** } bool GraphKit::can_move_pre_barrier() const { BarrierSet* bs = Universe::heap()->barrier_set(); switch (bs->kind()) { ! case BarrierSet::G1SATBCTLogging: return true; // Can move it if no safepoint case BarrierSet::CardTableModRef: return true; // There is no pre-barrier --- 1575,1585 ---- } bool GraphKit::can_move_pre_barrier() const { BarrierSet* bs = Universe::heap()->barrier_set(); switch (bs->kind()) { ! case BarrierSet::G1BarrierSet: return true; // Can move it if no safepoint case BarrierSet::CardTableModRef: return true; // There is no pre-barrier ***************
*** 1598,1608 **** BasicType bt, bool use_precise) { BarrierSet* bs = Universe::heap()->barrier_set(); set_control(ctl); switch (bs->kind()) { ! case BarrierSet::G1SATBCTLogging: g1_write_barrier_post(store, obj, adr, adr_idx, val, bt, use_precise); break; case BarrierSet::CardTableModRef: write_barrier_post(store, obj, adr, adr_idx, val, use_precise); --- 1598,1608 ---- BasicType bt, bool use_precise) { BarrierSet* bs = Universe::heap()->barrier_set(); set_control(ctl); switch (bs->kind()) { ! case BarrierSet::G1BarrierSet: g1_write_barrier_post(store, obj, adr, adr_idx, val, bt, use_precise); break; case BarrierSet::CardTableModRef: write_barrier_post(store, obj, adr, adr_idx, val, use_precise); ***************
*** 4347,4357 **** } __ end_if(); } else { // The Object.clone() intrinsic uses this path if !ReduceInitialCardMarks. // We don't need a barrier here if the destination is a newly allocated object // in Eden. Otherwise, GC verification breaks because we assume that cards in Eden ! // are set to 'g1_young_gen' (see G1SATBCardTableModRefBS::verify_g1_young_region()). assert(!use_ReduceInitialCardMarks(), "can only happen with card marking"); Node* card_val = __ load(__ ctrl(), card_adr, TypeInt::INT, T_BYTE, Compile::AliasIdxRaw); __ if_then(card_val, BoolTest::ne, young_card); { g1_mark_card(ideal, card_adr, oop_store, alias_idx, index, index_adr, buffer, tf); } __ end_if(); --- 4347,4357 ---- } __ end_if(); } else { // The Object.clone() intrinsic uses this path if !ReduceInitialCardMarks. // We don't need a barrier here if the destination is a newly allocated object // in Eden. Otherwise, GC verification breaks because we assume that cards in Eden ! // are set to 'g1_young_gen' (see G1CardTable::verify_g1_young_region()). assert(!use_ReduceInitialCardMarks(), "can only happen with card marking"); Node* card_val = __ load(__ ctrl(), card_adr, TypeInt::INT, T_BYTE, Compile::AliasIdxRaw); __ if_then(card_val, BoolTest::ne, young_card); { g1_mark_card(ideal, card_adr, oop_store, alias_idx, index, index_adr, buffer, tf); } __ end_if();
< prev index next >