< prev index next > src/hotspot/share/gc/shared/c2/barrierSetC2.cpp
Print this page
return _kit->barrier_set_state();
}
PhaseGVN& C2ParseAccess::gvn() const { return _kit->gvn(); }
+ Node* C2ParseAccess::control() const {
+ return _ctl == nullptr ? _kit->control() : _ctl;
+ }
+
bool C2Access::needs_cpu_membar() const {
bool mismatched = (_decorators & C2_MISMATCHED) != 0;
bool is_unordered = (_decorators & MO_UNORDERED) != 0;
bool anonymous = (_decorators & C2_UNSAFE_ACCESS) != 0;
Node* load;
if (access.is_parse_access()) {
C2ParseAccess& parse_access = static_cast<C2ParseAccess&>(access);
GraphKit* kit = parse_access.kit();
- Node* control = control_dependent ? kit->control() : nullptr;
+ Node* control = control_dependent ? parse_access.control() : nullptr;
if (immutable) {
Compile* C = Compile::current();
Node* mem = kit->immutable_memory();
load = LoadNode::make(kit->gvn(), control, mem, adr,
clone_addr,
clone_name,
TypeRawPtr::BOTTOM,
src, dst, full_size_in_heap_words XTOP);
phase->transform_later(call);
- phase->igvn().replace_node(ac, call);
+ phase->replace_node(ac, call);
}
void BarrierSetC2::clone_at_expansion(PhaseMacroExpand* phase, ArrayCopyNode* ac) const {
Node* ctrl = ac->in(TypeFunc::Control);
Node* mem = ac->in(TypeFunc::Memory);
const TypeFunc* call_type = OptoRuntime::fast_arraycopy_Type();
Node* call = phase->make_leaf_call(ctrl, mem, call_type, copyfunc_addr, copyfunc_name, raw_adr_type, payload_src, payload_dst, length XTOP);
phase->transform_later(call);
- phase->igvn().replace_node(ac, call);
+ phase->replace_node(ac, call);
}
#undef XTOP
void BarrierSetC2::compute_liveness_at_stubs() const {
< prev index next >