Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/opto/ifnode.cpp
          +++ new/src/share/vm/opto/ifnode.cpp
↓ open down ↓ 538 lines elided ↑ open up ↑
 539  539    Node *new_cmp = (flip == 1)
 540  540      ? new (gvn->C, 3) CmpUNode( new_add, range )
 541  541      : new (gvn->C, 3) CmpUNode( range, new_add );
 542  542    new_cmp = gvn->transform(new_cmp);
 543  543    // See if no need to adjust the existing check
 544  544    if( new_cmp == cmp ) return;
 545  545    // Else, adjust existing check
 546  546    Node *new_bol = gvn->transform( new (gvn->C, 2) BoolNode( new_cmp, bol->as_Bool()->_test._test ) );
 547  547    igvn->hash_delete( iff );
 548  548    iff->set_req_X( 1, new_bol, igvn );
      549 +  igvn->_worklist.push( iff );
 549  550  }
 550  551  
 551  552  //------------------------------up_one_dom-------------------------------------
 552  553  // Walk up the dominator tree one step.  Return NULL at root or true
 553  554  // complex merges.  Skips through small diamonds.
 554  555  Node* IfNode::up_one_dom(Node *curr, bool linear_only) {
 555  556    Node *dom = curr->in(0);
 556  557    if( !dom )                    // Found a Region degraded to a copy?
 557  558      return curr->nonnull_req(); // Skip thru it
 558  559  
↓ open down ↓ 575 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX