< 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 >