< prev index next >

src/hotspot/share/opto/callnode.cpp

Print this page

        

*** 1675,1684 **** --- 1675,1692 ---- } if (projs->catchall_catchproj != NULL) { igvn->replace_node(projs->catchall_catchproj, phase->C->top()); } if (projs->resproj[0] != NULL) { + // Remove MemBarStoreStore user as well + for (DUIterator_Fast imax, i = projs->resproj[0]->fast_outs(imax); i < imax; i++) { + MemBarStoreStoreNode* mb = projs->resproj[0]->fast_out(i)->isa_MemBarStoreStore(); + if (mb != NULL && mb->outcnt() == 2) { + mb->remove(igvn); + --i; --imax; + } + } igvn->replace_node(projs->resproj[0], phase->C->top()); } igvn->replace_node(this, phase->C->top()); if (init != NULL) { Node* ctrl_proj = init->proj_out_or_null(TypeFunc::Control);
*** 1694,1704 **** } return CallNode::Ideal(phase, can_reshape); } ! Node *AllocateNode::make_ideal_mark(PhaseGVN *phase, Node* obj, Node* control, Node* mem) { Node* mark_node = NULL; // For now only enable fast locking for non-array types if ((EnableValhalla || UseBiasedLocking) && Opcode() == Op_Allocate) { Node* klass_node = in(AllocateNode::KlassNode); Node* proto_adr = phase->transform(new AddPNode(klass_node, klass_node, phase->MakeConX(in_bytes(Klass::prototype_header_offset())))); --- 1702,1712 ---- } return CallNode::Ideal(phase, can_reshape); } ! Node* AllocateNode::make_ideal_mark(PhaseGVN* phase, Node* control, Node* mem) { Node* mark_node = NULL; // For now only enable fast locking for non-array types if ((EnableValhalla || UseBiasedLocking) && Opcode() == Op_Allocate) { Node* klass_node = in(AllocateNode::KlassNode); Node* proto_adr = phase->transform(new AddPNode(klass_node, klass_node, phase->MakeConX(in_bytes(Klass::prototype_header_offset()))));
< prev index next >