Mercurial > hg > truffle
comparison src/share/vm/opto/loopnode.cpp @ 8883:b9a918201d47
Merge with hsx25
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Sat, 06 Apr 2013 20:04:06 +0200 |
parents | 30f42e691e70 |
children | f2110083203d |
comparison
equal
deleted
inserted
replaced
8660:d47b52b0ff68 | 8883:b9a918201d47 |
---|---|
2249 assert(C->unique() == unique, "verification mode made Nodes? ? ?"); | 2249 assert(C->unique() == unique, "verification mode made Nodes? ? ?"); |
2250 assert(_igvn._worklist.size() == orig_worklist_size, "shouldn't push anything"); | 2250 assert(_igvn._worklist.size() == orig_worklist_size, "shouldn't push anything"); |
2251 return; | 2251 return; |
2252 } | 2252 } |
2253 | 2253 |
2254 // clear out the dead code after build_loop_late | |
2255 while (_deadlist.size()) { | |
2256 _igvn.remove_globally_dead_node(_deadlist.pop()); | |
2257 } | |
2258 | |
2254 if (stop_early) { | 2259 if (stop_early) { |
2255 assert(do_expensive_nodes, "why are we here?"); | 2260 assert(do_expensive_nodes, "why are we here?"); |
2256 if (process_expensive_nodes()) { | 2261 if (process_expensive_nodes()) { |
2257 // If we made some progress when processing expensive nodes then | 2262 // If we made some progress when processing expensive nodes then |
2258 // the IGVN may modify the graph in a way that will allow us to | 2263 // the IGVN may modify the graph in a way that will allow us to |
2259 // make some more progress: we need to try processing expensive | 2264 // make some more progress: we need to try processing expensive |
2260 // nodes again. | 2265 // nodes again. |
2261 C->set_major_progress(); | 2266 C->set_major_progress(); |
2262 } | 2267 } |
2263 | |
2264 _igvn.optimize(); | 2268 _igvn.optimize(); |
2265 | |
2266 return; | 2269 return; |
2267 } | 2270 } |
2268 | 2271 |
2269 // Some parser-inserted loop predicates could never be used by loop | 2272 // Some parser-inserted loop predicates could never be used by loop |
2270 // predication or they were moved away from loop during some optimizations. | 2273 // predication or they were moved away from loop during some optimizations. |
2271 // For example, peeling. Eliminate them before next loop optimizations. | 2274 // For example, peeling. Eliminate them before next loop optimizations. |
2272 if (UseLoopPredicate || LoopLimitCheck) { | 2275 if (UseLoopPredicate || LoopLimitCheck) { |
2273 eliminate_useless_predicates(); | 2276 eliminate_useless_predicates(); |
2274 } | |
2275 | |
2276 // clear out the dead code | |
2277 while(_deadlist.size()) { | |
2278 _igvn.remove_globally_dead_node(_deadlist.pop()); | |
2279 } | 2277 } |
2280 | 2278 |
2281 #ifndef PRODUCT | 2279 #ifndef PRODUCT |
2282 C->verify_graph_edges(); | 2280 C->verify_graph_edges(); |
2283 if (_verify_me) { // Nested verify pass? | 2281 if (_verify_me) { // Nested verify pass? |