2572 // the nodes being moved (sinked) from the peel region. |
2572 // the nodes being moved (sinked) from the peel region. |
2573 LoopNode* new_head = new LoopNode(last_peel, last_peel); |
2573 LoopNode* new_head = new LoopNode(last_peel, last_peel); |
2574 new_head->set_unswitch_count(head->unswitch_count()); // Preserve |
2574 new_head->set_unswitch_count(head->unswitch_count()); // Preserve |
2575 _igvn.register_new_node_with_optimizer(new_head); |
2575 _igvn.register_new_node_with_optimizer(new_head); |
2576 assert(first_not_peeled->in(0) == last_peel, "last_peel <- first_not_peeled"); |
2576 assert(first_not_peeled->in(0) == last_peel, "last_peel <- first_not_peeled"); |
2577 first_not_peeled->set_req(0, new_head); |
2577 _igvn.replace_input_of(first_not_peeled, 0, new_head); |
2578 set_loop(new_head, loop); |
2578 set_loop(new_head, loop); |
2579 loop->_body.push(new_head); |
2579 loop->_body.push(new_head); |
2580 not_peel.set(new_head->_idx); |
2580 not_peel.set(new_head->_idx); |
2581 set_idom(new_head, last_peel, dom_depth(first_not_peeled)); |
2581 set_idom(new_head, last_peel, dom_depth(first_not_peeled)); |
2582 set_idom(first_not_peeled, new_head, dom_depth(first_not_peeled)); |
2582 set_idom(first_not_peeled, new_head, dom_depth(first_not_peeled)); |