提交 92eac13e 编写于 作者: R roland

8078866: compiler/eliminateAutobox/6934604/TestIntBoxing.java...

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
上级 fb8902d7
...@@ -1821,7 +1821,10 @@ void PhaseIdealLoop::do_range_check( IdealLoopTree *loop, Node_List &old_new ) { ...@@ -1821,7 +1821,10 @@ void PhaseIdealLoop::do_range_check( IdealLoopTree *loop, Node_List &old_new ) {
// Find the pre-loop limit; we will expand it's iterations to // Find the pre-loop limit; we will expand it's iterations to
// not ever trip low tests. // not ever trip low tests.
Node *p_f = iffm->in(0); 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(); CountedLoopEndNode *pre_end = p_f->in(0)->as_CountedLoopEnd();
assert(pre_end->loopnode()->is_pre_loop(), ""); assert(pre_end->loopnode()->is_pre_loop(), "");
Node *pre_opaq1 = pre_end->limit(); Node *pre_opaq1 = pre_end->limit();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册