src/hotspot/share/opto/callnode.cpp
changeset 58372 43c4fb8ba96b
parent 58061 fafba5cf3546
child 58679 9c3209ff7550
equal deleted inserted replaced
58367:b3ca57ddfc92 58372:43c4fb8ba96b
  1395   // Allocation node is first parameter in its initializer
  1395   // Allocation node is first parameter in its initializer
  1396   if (analyzer->is_arg_stack(0) || analyzer->is_arg_local(0)) {
  1396   if (analyzer->is_arg_stack(0) || analyzer->is_arg_local(0)) {
  1397     _is_allocation_MemBar_redundant = true;
  1397     _is_allocation_MemBar_redundant = true;
  1398   }
  1398   }
  1399 }
  1399 }
       
  1400 Node *AllocateNode::make_ideal_mark(PhaseGVN *phase, Node* obj, Node* control, Node* mem) {
       
  1401   Node* mark_node = NULL;
       
  1402   // For now only enable fast locking for non-array types
       
  1403   if (UseBiasedLocking && Opcode() == Op_Allocate) {
       
  1404     Node* klass_node = in(AllocateNode::KlassNode);
       
  1405     Node* proto_adr = phase->transform(new AddPNode(klass_node, klass_node, phase->MakeConX(in_bytes(Klass::prototype_header_offset()))));
       
  1406     mark_node = LoadNode::make(*phase, control, mem, proto_adr, TypeRawPtr::BOTTOM, TypeX_X, TypeX_X->basic_type(), MemNode::unordered);
       
  1407   } else {
       
  1408     mark_node = phase->MakeConX(markWord::prototype().value());
       
  1409   }
       
  1410   return mark_node;
       
  1411 }
  1400 
  1412 
  1401 //=============================================================================
  1413 //=============================================================================
  1402 Node* AllocateArrayNode::Ideal(PhaseGVN *phase, bool can_reshape) {
  1414 Node* AllocateArrayNode::Ideal(PhaseGVN *phase, bool can_reshape) {
  1403   if (remove_dead_region(phase, can_reshape))  return this;
  1415   if (remove_dead_region(phase, can_reshape))  return this;
  1404   // Don't bother trying to transform a dead node
  1416   // Don't bother trying to transform a dead node