2208 while (_deadlist.size()) { 2209 _igvn.remove_globally_dead_node(_deadlist.pop()); 2210 } 2211 2212 if (stop_early) { 2213 assert(do_expensive_nodes, "why are we here?"); 2214 if (process_expensive_nodes()) { 2215 // If we made some progress when processing expensive nodes then 2216 // the IGVN may modify the graph in a way that will allow us to 2217 // make some more progress: we need to try processing expensive 2218 // nodes again. 2219 C->set_major_progress(); 2220 } 2221 _igvn.optimize(); 2222 return; 2223 } 2224 2225 // Some parser-inserted loop predicates could never be used by loop 2226 // predication or they were moved away from loop during some optimizations. 2227 // For example, peeling. Eliminate them before next loop optimizations. 2228 if (UseLoopPredicate) { 2229 eliminate_useless_predicates(); 2230 } 2231 2232 #ifndef PRODUCT 2233 C->verify_graph_edges(); 2234 if (_verify_me) { // Nested verify pass? 2235 // Check to see if the verify mode is broken 2236 assert(C->unique() == unique, "non-optimize mode made Nodes? ? ?"); 2237 return; 2238 } 2239 if(VerifyLoopOptimizations) verify(); 2240 if(TraceLoopOpts && C->has_loops()) { 2241 _ltree_root->dump(); 2242 } 2243 #endif 2244 2245 if (skip_loop_opts) { 2246 // restore major progress flag 2247 for (int i = 0; i < old_progress; i++) { 2248 C->set_major_progress(); 2249 } 2250 | 2208 while (_deadlist.size()) { 2209 _igvn.remove_globally_dead_node(_deadlist.pop()); 2210 } 2211 2212 if (stop_early) { 2213 assert(do_expensive_nodes, "why are we here?"); 2214 if (process_expensive_nodes()) { 2215 // If we made some progress when processing expensive nodes then 2216 // the IGVN may modify the graph in a way that will allow us to 2217 // make some more progress: we need to try processing expensive 2218 // nodes again. 2219 C->set_major_progress(); 2220 } 2221 _igvn.optimize(); 2222 return; 2223 } 2224 2225 // Some parser-inserted loop predicates could never be used by loop 2226 // predication or they were moved away from loop during some optimizations. 2227 // For example, peeling. Eliminate them before next loop optimizations. 2228 eliminate_useless_predicates(); 2229 2230 #ifndef PRODUCT 2231 C->verify_graph_edges(); 2232 if (_verify_me) { // Nested verify pass? 2233 // Check to see if the verify mode is broken 2234 assert(C->unique() == unique, "non-optimize mode made Nodes? ? ?"); 2235 return; 2236 } 2237 if(VerifyLoopOptimizations) verify(); 2238 if(TraceLoopOpts && C->has_loops()) { 2239 _ltree_root->dump(); 2240 } 2241 #endif 2242 2243 if (skip_loop_opts) { 2244 // restore major progress flag 2245 for (int i = 0; i < old_progress; i++) { 2246 C->set_major_progress(); 2247 } 2248 |