aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto/superword.cpp
diff options
context:
space:
mode:
authornever <none@none>2008-04-03 21:26:03 -0700
committernever <none@none>2008-04-03 21:26:03 -0700
commit380ffd11a23674a2792816b4522dcd1d635f2ecb (patch)
tree7e288189a4c24e0948224b619d185523387b34c4 /src/share/vm/opto/superword.cpp
parentf655b13c0faf7cde0d65b0bab8efd2dca5d0b5fb (diff)
downloadjdk8u_hotspot-380ffd11a23674a2792816b4522dcd1d635f2ecb.tar.gz
6646020: assert(in_bb(n),"must be in block") in -Xcomp mode
Reviewed-by: kvn, rasbold
Diffstat (limited to 'src/share/vm/opto/superword.cpp')
-rw-r--r--src/share/vm/opto/superword.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/share/vm/opto/superword.cpp b/src/share/vm/opto/superword.cpp
index 625acd85e..b9b8a98bb 100644
--- a/src/share/vm/opto/superword.cpp
+++ b/src/share/vm/opto/superword.cpp
@@ -65,6 +65,11 @@ void SuperWord::transform_loop(IdealLoopTree* lpt) {
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;