hotspot/src/share/vm/opto/loopTransform.cpp
changeset 14144 effbc094884c
parent 13524 bae2f51dfb73
child 15917 e8b270c49398
child 14147 7e2ece489a84
equal deleted inserted replaced
14143:79c6fae0f949 14144:effbc094884c
  2714   result_ctrl = new (C, 1) ProjNode(call,TypeFunc::Control);
  2714   result_ctrl = new (C, 1) ProjNode(call,TypeFunc::Control);
  2715   _igvn.register_new_node_with_optimizer(result_ctrl);
  2715   _igvn.register_new_node_with_optimizer(result_ctrl);
  2716   result_mem = new (C, 1) ProjNode(call,TypeFunc::Memory);
  2716   result_mem = new (C, 1) ProjNode(call,TypeFunc::Memory);
  2717   _igvn.register_new_node_with_optimizer(result_mem);
  2717   _igvn.register_new_node_with_optimizer(result_mem);
  2718 
  2718 
       
  2719 /* Disable following optimization until proper fix (add missing checks).
       
  2720 
  2719   // If this fill is tightly coupled to an allocation and overwrites
  2721   // If this fill is tightly coupled to an allocation and overwrites
  2720   // the whole body, allow it to take over the zeroing.
  2722   // the whole body, allow it to take over the zeroing.
  2721   AllocateNode* alloc = AllocateNode::Ideal_allocation(base, this);
  2723   AllocateNode* alloc = AllocateNode::Ideal_allocation(base, this);
  2722   if (alloc != NULL && alloc->is_AllocateArray()) {
  2724   if (alloc != NULL && alloc->is_AllocateArray()) {
  2723     Node* length = alloc->as_AllocateArray()->Ideal_length();
  2725     Node* length = alloc->as_AllocateArray()->Ideal_length();
  2737         length->dump();
  2739         length->dump();
  2738       }
  2740       }
  2739 #endif
  2741 #endif
  2740     }
  2742     }
  2741   }
  2743   }
       
  2744 */
  2742 
  2745 
  2743   // Redirect the old control and memory edges that are outside the loop.
  2746   // Redirect the old control and memory edges that are outside the loop.
  2744   Node* exit = head->loopexit()->proj_out(0);
  2747   Node* exit = head->loopexit()->proj_out(0);
  2745   // Sometimes the memory phi of the head is used as the outgoing
  2748   // Sometimes the memory phi of the head is used as the outgoing
  2746   // state of the loop.  It's safe in this case to replace it with the
  2749   // state of the loop.  It's safe in this case to replace it with the