< prev index next >

src/hotspot/share/opto/compile.cpp

BarrierSetC2

*** 31,40 **** --- 31,42 ---- #include "code/nmethod.hpp" #include "compiler/compileBroker.hpp" #include "compiler/compileLog.hpp" #include "compiler/disassembler.hpp" #include "compiler/oopMap.hpp" + #include "gc/shared/barrierSet.hpp" + #include "gc/shared/c2/barrierSetC2.hpp" #include "memory/resourceArea.hpp" #include "opto/addnode.hpp" #include "opto/block.hpp" #include "opto/c2compiler.hpp" #include "opto/callGenerator.hpp" ***************
*** 635,644 **** --- 637,647 ---- _save_argument_registers(false), _stub_name(NULL), _stub_function(NULL), _stub_entry_point(NULL), _method(target), + _barrier_set_state(BarrierSet::barrier_set()->barrier_set_c2()->create_barrier_state()), _entry_bci(osr_bci), _initial_gvn(NULL), _for_igvn(NULL), _warm_calls(NULL), _subsume_loads(subsume_loads), ***************
*** 770,790 **** // Normal case. init_tf(TypeFunc::make(method())); StartNode* s = new StartNode(root(), tf()->domain()); initial_gvn()->set_type_bottom(s); init_start(s); ! if (method()->intrinsic_id() == vmIntrinsics::_Reference_get && UseG1GC) { // With java.lang.ref.reference.get() we must go through the ! // intrinsic when G1 is enabled - even when get() is the root // method of the compile - so that, if necessary, the value in // the referent field of the reference object gets recorded by // the pre-barrier code. - // Specifically, if G1 is enabled, the value in the referent - // field is recorded by the G1 SATB pre barrier. This will - // result in the referent being marked live and the reference - // object removed from the list of discovered references during - // reference processing. cg = find_intrinsic(method(), false); } if (cg == NULL) { float past_uses = method()->interpreter_invocation_count(); float expected_uses = past_uses; --- 773,788 ---- // Normal case. init_tf(TypeFunc::make(method())); StartNode* s = new StartNode(root(), tf()->domain()); initial_gvn()->set_type_bottom(s); init_start(s); ! if (method()->intrinsic_id() == vmIntrinsics::_Reference_get) { // With java.lang.ref.reference.get() we must go through the ! // intrinsic - even when get() is the root // method of the compile - so that, if necessary, the value in // the referent field of the reference object gets recorded by // the pre-barrier code. cg = find_intrinsic(method(), false); } if (cg == NULL) { float past_uses = method()->interpreter_invocation_count(); float expected_uses = past_uses;
< prev index next >