diff src/share/vm/opto/loopTransform.cpp @ 23065:6b40d295742c

8078866: compiler/eliminateAutobox/6934604/TestIntBoxing.java assert(p_f->Opcode() == Op_IfFalse) failed Summary: Bail out from range check elimination if pre loop is not found Reviewed-by: kvn
author roland
date Thu, 04 Jun 2015 16:19:22 +0200
parents 5b8e0f84f00f
children dd9cc155639c 192643caadca 94ec11846b18
line wrap: on
line diff
--- a/src/share/vm/opto/loopTransform.cpp	Thu Jun 04 23:11:44 2015 -0700
+++ b/src/share/vm/opto/loopTransform.cpp	Thu Jun 04 16:19:22 2015 +0200
@@ -1821,7 +1821,10 @@
   // Find the pre-loop limit; we will expand it's iterations to
   // not ever trip low tests.
   Node *p_f = iffm->in(0);
-  assert(p_f->Opcode() == Op_IfFalse, "");
+  // pre loop may have been optimized out
+  if (p_f->Opcode() != Op_IfFalse) {
+    return;
+  }
   CountedLoopEndNode *pre_end = p_f->in(0)->as_CountedLoopEnd();
   assert(pre_end->loopnode()->is_pre_loop(), "");
   Node *pre_opaq1 = pre_end->limit();