hotspot/src/share/vm/opto/reg_split.cpp
changeset 2030 39d55e4534b4
parent 2014 5510e7394f2d
child 2131 98f9cef66a34
child 2105 347008ce7984
equal deleted inserted replaced
2029:4ba79339bc0c 2030:39d55e4534b4
    94 void PhaseChaitin::insert_proj( Block *b, uint i, Node *spill, uint maxlrg ) {
    94 void PhaseChaitin::insert_proj( Block *b, uint i, Node *spill, uint maxlrg ) {
    95   // Skip intervening ProjNodes.  Do not insert between a ProjNode and
    95   // Skip intervening ProjNodes.  Do not insert between a ProjNode and
    96   // its definer.
    96   // its definer.
    97   while( i < b->_nodes.size() &&
    97   while( i < b->_nodes.size() &&
    98          (b->_nodes[i]->is_Proj() ||
    98          (b->_nodes[i]->is_Proj() ||
    99           b->_nodes[i]->is_Phi()  ||
    99           b->_nodes[i]->is_Phi() ) )
   100           (b->_nodes[i]->is_Mach() &&
       
   101            b->_nodes[i]->as_Mach()->ideal_Opcode() == Op_CreateEx)) )
       
   102     i++;
   100     i++;
   103 
   101 
   104   // Do not insert between a call and his Catch
   102   // Do not insert between a call and his Catch
   105   if( b->_nodes[i]->is_Catch() ) {
   103   if( b->_nodes[i]->is_Catch() ) {
   106     // Put the instruction at the top of the fall-thru block.
   104     // Put the instruction at the top of the fall-thru block.