< prev index next >

src/hotspot/share/opto/loopPredicate.cpp

Print this page

        

@@ -383,11 +383,11 @@
   // Search original predicates
   Node* entry = old_entry;
   ProjNode* limit_check_proj = NULL;
   limit_check_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_loop_limit_check);
   if (limit_check_proj != NULL) {
-    entry = entry->in(0)->in(0);
+    entry = skip_loop_predicates(entry);
   }
   ProjNode* profile_predicate_proj = NULL;
   ProjNode* predicate_proj = NULL;
   if (UseProfiledLoopPredicate) {
     profile_predicate_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_profile_predicate);

@@ -465,11 +465,11 @@
 
 Node* PhaseIdealLoop::skip_all_loop_predicates(Node* entry) {
   Node* predicate = NULL;
   predicate = find_predicate_insertion_point(entry, Deoptimization::Reason_loop_limit_check);
   if (predicate != NULL) {
-    entry = entry->in(0)->in(0);
+    entry = skip_loop_predicates(entry);
   }
   if (UseProfiledLoopPredicate) {
     predicate = find_predicate_insertion_point(entry, Deoptimization::Reason_profile_predicate);
     if (predicate != NULL) { // right pattern that can be used by loop predication
       entry = skip_loop_predicates(entry);

@@ -1352,11 +1352,11 @@
   ProjNode *predicate_proj = NULL;
   ProjNode *profile_predicate_proj = NULL;
   // Loop limit check predicate should be near the loop.
   loop_limit_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_loop_limit_check);
   if (loop_limit_proj != NULL) {
-    entry = loop_limit_proj->in(0)->in(0);
+    entry = skip_loop_predicates(loop_limit_proj);
   }
   bool has_profile_predicates = false;
   profile_predicate_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_profile_predicate);
   if (profile_predicate_proj != NULL) {
     Node* n = skip_loop_predicates(entry);
< prev index next >