src/hotspot/share/opto/callGenerator.cpp
changeset 48197 afcefb8ab1e1
parent 47216 71c04702a3d5
child 50449 acdfeede95ff
equal deleted inserted replaced
48196:5ee29f4ec472 48197:afcefb8ab1e1
   357     }
   357     }
   358   }
   358   }
   359 
   359 
   360   if (call->in(TypeFunc::Memory)->is_top()) {
   360   if (call->in(TypeFunc::Memory)->is_top()) {
   361     assert(Compile::current()->inlining_incrementally(), "shouldn't happen during parsing");
   361     assert(Compile::current()->inlining_incrementally(), "shouldn't happen during parsing");
       
   362     return;
       
   363   }
       
   364 
       
   365   // check for unreachable loop
       
   366   CallProjections callprojs;
       
   367   call->extract_projections(&callprojs, true);
       
   368   if (callprojs.fallthrough_catchproj == call->in(0) ||
       
   369       callprojs.catchall_catchproj == call->in(0) ||
       
   370       callprojs.fallthrough_memproj == call->in(TypeFunc::Memory) ||
       
   371       callprojs.catchall_memproj == call->in(TypeFunc::Memory) ||
       
   372       callprojs.fallthrough_ioproj == call->in(TypeFunc::I_O) ||
       
   373       callprojs.catchall_ioproj == call->in(TypeFunc::I_O) ||
       
   374       (callprojs.resproj != NULL && call->find_edge(callprojs.resproj) != -1) ||
       
   375       (callprojs.exobj != NULL && call->find_edge(callprojs.exobj) != -1)) {
   362     return;
   376     return;
   363   }
   377   }
   364 
   378 
   365   Compile* C = Compile::current();
   379   Compile* C = Compile::current();
   366   // Remove inlined methods from Compiler's lists.
   380   // Remove inlined methods from Compiler's lists.