< prev index next >
src/hotspot/share/opto/loopUnswitch.cpp
Print this page
*** 136,148 ****
#ifdef ASSERT
Node* uniqc = proj_true->unique_ctrl_out();
Node* entry = head->skip_strip_mined()->in(LoopNode::EntryControl);
Node* predicate = find_predicate(entry);
if (predicate != NULL && UseLoopPredicate) {
// We may have two predicates, find first.
! entry = find_predicate(entry->in(0)->in(0));
if (entry != NULL) predicate = entry;
}
if (predicate != NULL) predicate = predicate->in(0);
assert(proj_true->is_IfTrue() &&
(predicate == NULL && uniqc == head && !head->is_strip_mined() ||
--- 136,158 ----
#ifdef ASSERT
Node* uniqc = proj_true->unique_ctrl_out();
Node* entry = head->skip_strip_mined()->in(LoopNode::EntryControl);
Node* predicate = find_predicate(entry);
+ if (predicate != NULL) {
+ entry = skip_loop_predicates(entry);
+ }
if (predicate != NULL && UseLoopPredicate) {
// We may have two predicates, find first.
! Node* n = find_predicate(entry);
! if (n != NULL) {
! predicate = n;
! entry = skip_loop_predicates(entry);
! }
! }
! if (predicate != NULL && UseProfiledLoopPredicate) {
! entry = find_predicate(entry);
if (entry != NULL) predicate = entry;
}
if (predicate != NULL) predicate = predicate->in(0);
assert(proj_true->is_IfTrue() &&
(predicate == NULL && uniqc == head && !head->is_strip_mined() ||
< prev index next >