src/hotspot/share/opto/loopUnswitch.cpp
changeset 50623 5209d8a6303e
parent 48145 f913f6dba2d3
child 54698 3ebf58dbf5d8
equal deleted inserted replaced
50622:21b96ce2ed10 50623:5209d8a6303e
   136 
   136 
   137 #ifdef ASSERT
   137 #ifdef ASSERT
   138   Node* uniqc = proj_true->unique_ctrl_out();
   138   Node* uniqc = proj_true->unique_ctrl_out();
   139   Node* entry = head->skip_strip_mined()->in(LoopNode::EntryControl);
   139   Node* entry = head->skip_strip_mined()->in(LoopNode::EntryControl);
   140   Node* predicate = find_predicate(entry);
   140   Node* predicate = find_predicate(entry);
       
   141   if (predicate != NULL) {
       
   142     entry = skip_loop_predicates(entry);
       
   143   }
   141   if (predicate != NULL && UseLoopPredicate) {
   144   if (predicate != NULL && UseLoopPredicate) {
   142     // We may have two predicates, find first.
   145     // We may have two predicates, find first.
   143     entry = find_predicate(entry->in(0)->in(0));
   146     Node* n = find_predicate(entry);
       
   147     if (n != NULL) {
       
   148       predicate = n;
       
   149       entry = skip_loop_predicates(entry);
       
   150     }
       
   151   }
       
   152   if (predicate != NULL && UseProfiledLoopPredicate) {
       
   153     entry = find_predicate(entry);
   144     if (entry != NULL) predicate = entry;
   154     if (entry != NULL) predicate = entry;
   145   }
   155   }
   146   if (predicate != NULL) predicate = predicate->in(0);
   156   if (predicate != NULL) predicate = predicate->in(0);
   147   assert(proj_true->is_IfTrue() &&
   157   assert(proj_true->is_IfTrue() &&
   148          (predicate == NULL && uniqc == head && !head->is_strip_mined() ||
   158          (predicate == NULL && uniqc == head && !head->is_strip_mined() ||