提交 1415506c 编写于 作者: N never

6927049: assert(is_Loop(),"invalid node class")

Reviewed-by: kvn
上级 687b8bf8
...@@ -2117,6 +2117,18 @@ BoolNode* PhaseIdealLoop::rc_predicate(Node* ctrl, ...@@ -2117,6 +2117,18 @@ BoolNode* PhaseIdealLoop::rc_predicate(Node* ctrl,
bool PhaseIdealLoop::loop_predication_impl(IdealLoopTree *loop) { bool PhaseIdealLoop::loop_predication_impl(IdealLoopTree *loop) {
if (!UseLoopPredicate) return false; if (!UseLoopPredicate) return false;
if (!loop->_head->is_Loop()) {
// Could be a simple region when irreducible loops are present.
return false;
}
CountedLoopNode *cl = NULL;
if (loop->_head->is_CountedLoop()) {
cl = loop->_head->as_CountedLoop();
// do nothing for iteration-splitted loops
if (!cl->is_normal_loop()) return false;
}
// Too many traps seen? // Too many traps seen?
bool tmt = C->too_many_traps(C->method(), 0, Deoptimization::Reason_predicate); bool tmt = C->too_many_traps(C->method(), 0, Deoptimization::Reason_predicate);
int tc = C->trap_count(Deoptimization::Reason_predicate); int tc = C->trap_count(Deoptimization::Reason_predicate);
...@@ -2129,13 +2141,6 @@ bool PhaseIdealLoop::loop_predication_impl(IdealLoopTree *loop) { ...@@ -2129,13 +2141,6 @@ bool PhaseIdealLoop::loop_predication_impl(IdealLoopTree *loop) {
return false; return false;
} }
CountedLoopNode *cl = NULL;
if (loop->_head->is_CountedLoop()) {
cl = loop->_head->as_CountedLoop();
// do nothing for iteration-splitted loops
if(!cl->is_normal_loop()) return false;
}
LoopNode *lpn = loop->_head->as_Loop(); LoopNode *lpn = loop->_head->as_Loop();
Node* entry = lpn->in(LoopNode::EntryControl); Node* entry = lpn->in(LoopNode::EntryControl);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册