equal
deleted
inserted
replaced
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. |