src/share/vm/opto/superword.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
6646020 Cdiff src/share/vm/opto/superword.cpp
src/share/vm/opto/superword.cpp
Print this page
*** 63,72 ****
--- 63,77 ----
// Check for no control flow in body (other than exit)
Node *cl_exit = cl->loopexit();
if (cl_exit->in(0) != lpt->_head) return;
+ // Make sure the are no extra control users of the loop backedge
+ if (cl->back_control()->outcnt() != 1) {
+ return;
+ }
+
// Check for pre-loop ending with CountedLoopEnd(Bool(Cmp(x,Opaque1(limit))))
CountedLoopEndNode* pre_end = get_pre_loop_end(cl);
if (pre_end == NULL) return;
Node *pre_opaq1 = pre_end->limit();
if (pre_opaq1->Opcode() != Op_Opaque1) return;
src/share/vm/opto/superword.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File