diff src/share/vm/opto/superword.cpp @ 105:a7d0f95410bd

6646020: assert(in_bb(n),"must be in block") in -Xcomp mode Reviewed-by: kvn, rasbold
author never
date Thu, 03 Apr 2008 21:26:03 -0700
parents f705f25597eb
children ba764ed4b6f2
line wrap: on
line diff
--- a/src/share/vm/opto/superword.cpp	Thu Apr 03 13:33:13 2008 -0700
+++ b/src/share/vm/opto/superword.cpp	Thu Apr 03 21:26:03 2008 -0700
@@ -65,6 +65,11 @@
   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;