< prev index next >

src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp

Print this page
rev 55008 : 8224667: Shenandoah: Post-LRB cleanup

*** 1091,1101 **** Node* base = find_bottom_mem(ctrl, phase); MergeMemNode* mm = MergeMemNode::make(base); mm->set_memory_at(Compile::AliasIdxRaw, raw_mem); phase->register_new_node(mm, ctrl); ! Node* call = new CallLeafNode(ShenandoahBarrierSetC2::shenandoah_write_barrier_Type(), CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier_JRT), "shenandoah_write_barrier", TypeRawPtr::BOTTOM); call->init_req(TypeFunc::Control, ctrl); call->init_req(TypeFunc::I_O, phase->C->top()); call->init_req(TypeFunc::Memory, mm); call->init_req(TypeFunc::FramePtr, phase->C->top()); call->init_req(TypeFunc::ReturnAdr, phase->C->top()); --- 1091,1101 ---- Node* base = find_bottom_mem(ctrl, phase); MergeMemNode* mm = MergeMemNode::make(base); mm->set_memory_at(Compile::AliasIdxRaw, raw_mem); phase->register_new_node(mm, ctrl); ! Node* call = new CallLeafNode(ShenandoahBarrierSetC2::shenandoah_load_reference_barrier_Type(), CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier_JRT), "shenandoah_load_reference_barrier", TypeRawPtr::BOTTOM); call->init_req(TypeFunc::Control, ctrl); call->init_req(TypeFunc::I_O, phase->C->top()); call->init_req(TypeFunc::Memory, mm); call->init_req(TypeFunc::FramePtr, phase->C->top()); call->init_req(TypeFunc::ReturnAdr, phase->C->top());
*** 1530,1540 **** // Wire up not-equal-path in slots 3. region->init_req(_not_equal, if_not_eq); val_phi->init_req(_not_equal, fwd); raw_mem_phi->init_req(_not_equal, raw_mem); ! // Call wb-stub and wire up that path in slots 4 Node* result_mem = NULL; ctrl = if_eq; call_lrb_stub(ctrl, fwd, result_mem, raw_mem, phase); region->init_req(_evac_path, ctrl); val_phi->init_req(_evac_path, fwd); --- 1530,1540 ---- // Wire up not-equal-path in slots 3. region->init_req(_not_equal, if_not_eq); val_phi->init_req(_not_equal, fwd); raw_mem_phi->init_req(_not_equal, raw_mem); ! // Call lrb-stub and wire up that path in slots 4 Node* result_mem = NULL; ctrl = if_eq; call_lrb_stub(ctrl, fwd, result_mem, raw_mem, phase); region->init_req(_evac_path, ctrl); val_phi->init_req(_evac_path, fwd);
*** 1977,1987 **** Unique_Node_List memories; nodes.push(root); for (uint next = 0; next < nodes.size(); next++) { Node *n = nodes.at(next); ! if (ShenandoahBarrierSetC2::is_shenandoah_wb_call(n)) { controls.push(n); if (trace) { tty->print("XXXXXX verifying"); n->dump(); } for (uint next2 = 0; next2 < controls.size(); next2++) { Node *m = controls.at(next2); for (DUIterator_Fast imax, i = m->fast_outs(imax); i < imax; i++) { --- 1977,1987 ---- Unique_Node_List memories; nodes.push(root); for (uint next = 0; next < nodes.size(); next++) { Node *n = nodes.at(next); ! if (ShenandoahBarrierSetC2::is_shenandoah_lrb_call(n)) { controls.push(n); if (trace) { tty->print("XXXXXX verifying"); n->dump(); } for (uint next2 = 0; next2 < controls.size(); next2++) { Node *m = controls.at(next2); for (DUIterator_Fast imax, i = m->fast_outs(imax); i < imax; i++) {
< prev index next >