changeset 8437: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 91a1be057e0a
children 78234388ae4f
files src/share/vm/opto/loopTransform.cpp
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
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();