< prev index next >
src/hotspot/share/opto/loopTransform.cpp
Print this page
rev 48506 : [mq]: JDK-8194992
@@ -1015,11 +1015,10 @@
// Find common pieces of the loop being guarded with pre & post loops
CountedLoopNode *main_head = loop->_head->as_CountedLoop();
assert( main_head->is_normal_loop(), "" );
CountedLoopEndNode *main_end = main_head->loopexit();
- guarantee(main_end != NULL, "no loop exit node");
assert( main_end->outcnt() == 2, "1 true, 1 false path only" );
Node *pre_header= main_head->in(LoopNode::EntryControl);
Node *init = main_head->init_trip();
Node *incr = main_end ->incr();
@@ -1241,11 +1240,10 @@
C->set_major_progress();
// Find common pieces of the loop being guarded with pre & post loops
CountedLoopNode *main_head = loop->_head->as_CountedLoop();
CountedLoopEndNode *main_end = main_head->loopexit();
- guarantee(main_end != NULL, "no loop exit node");
// diagnostic to show loop end is not properly formed
assert(main_end->outcnt() == 2, "1 true, 1 false path only");
// mark this loop as processed
main_head->mark_has_atomic_post_loop();
@@ -1291,11 +1289,10 @@
C->set_major_progress();
// Find common pieces of the loop being guarded with pre & post loops
CountedLoopNode *main_head = loop->_head->as_CountedLoop();
CountedLoopEndNode *main_end = main_head->loopexit();
- guarantee(main_end != NULL, "no loop exit node");
// diagnostic to show loop end is not properly formed
assert(main_end->outcnt() == 2, "1 true, 1 false path only");
Node *incr = main_end->incr();
Node *limit = main_end->limit();
@@ -1425,11 +1422,10 @@
// Unroll the loop body one step - make each trip do 2 iterations.
void PhaseIdealLoop::do_unroll( IdealLoopTree *loop, Node_List &old_new, bool adjust_min_trip ) {
assert(LoopUnrollLimit, "");
CountedLoopNode *loop_head = loop->_head->as_CountedLoop();
CountedLoopEndNode *loop_end = loop_head->loopexit();
- assert(loop_end, "");
#ifndef PRODUCT
if (PrintOpto && VerifyLoopOptimizations) {
tty->print("Unrolling ");
loop->dump_head();
} else if (TraceLoopOpts) {
@@ -2970,11 +2966,11 @@
} else if (!_igvn.type(n->in(MemNode::Address))->isa_aryptr()) {
msg = "not array address";
}
store = n;
store_value = value;
- } else if (n->is_If() && n != head->loopexit()) {
+ } else if (n->is_If() && n != head->loopexit_or_null()) {
msg = "extra control flow";
msg_node = n;
}
}
@@ -3112,11 +3108,10 @@
// store related values are ok
ok.set(store->_idx);
ok.set(store->in(MemNode::Memory)->_idx);
CountedLoopEndNode* loop_exit = head->loopexit();
- guarantee(loop_exit != NULL, "no loop exit node");
// Loop structure is ok
ok.set(head->_idx);
ok.set(loop_exit->_idx);
ok.set(head->phi()->_idx);
< prev index next >