6927049: assert(is_Loop(),"invalid node class")
Reviewed-by: kvn
This commit is contained in:
parent
fa2d360cd5
commit
fbd5ca617d
@ -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) {
|
|||||||
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);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user