Mercurial > hg > graal-compiler
comparison src/share/vm/opto/phaseX.cpp @ 7206:d2f8c38e543d
Merge
author | roland |
---|---|
date | Fri, 07 Dec 2012 01:09:03 -0800 |
parents | 2aff40cb4703 |
children | d092d1b31229 |
comparison
equal
deleted
inserted
replaced
7191:816b7e5bf2ed | 7206:d2f8c38e543d |
---|---|
381 // to each SafePointNode at a backward branch. Inserted in add_safepoint(). | 381 // to each SafePointNode at a backward branch. Inserted in add_safepoint(). |
382 if( !UseLoopSafepoints || !OptoRemoveUseless ) return; | 382 if( !UseLoopSafepoints || !OptoRemoveUseless ) return; |
383 | 383 |
384 // Identify nodes that are reachable from below, useful. | 384 // Identify nodes that are reachable from below, useful. |
385 C->identify_useful_nodes(_useful); | 385 C->identify_useful_nodes(_useful); |
386 // Update dead node list | |
387 C->update_dead_node_list(_useful); | |
386 | 388 |
387 // Remove all useless nodes from PhaseValues' recorded types | 389 // Remove all useless nodes from PhaseValues' recorded types |
388 // Must be done before disconnecting nodes to preserve hash-table-invariant | 390 // Must be done before disconnecting nodes to preserve hash-table-invariant |
389 gvn->remove_useless_nodes(_useful.member_set()); | 391 gvn->remove_useless_nodes(_useful.member_set()); |
390 | 392 |
1188 assert(!(i < imax), "sanity"); | 1190 assert(!(i < imax), "sanity"); |
1189 } | 1191 } |
1190 } | 1192 } |
1191 } | 1193 } |
1192 } | 1194 } |
1193 | 1195 C->record_dead_node(dead->_idx); |
1194 if (dead->is_macro()) { | 1196 if (dead->is_macro()) { |
1195 C->remove_macro_node(dead); | 1197 C->remove_macro_node(dead); |
1196 } | 1198 } |
1197 | 1199 |
1198 if (recurse) { | 1200 if (recurse) { |
1199 continue; | 1201 continue; |
1200 } | 1202 } |
1201 } | 1203 } |
1204 // Constant node that has no out-edges and has only one in-edge from | |
1205 // root is usually dead. However, sometimes reshaping walk makes | |
1206 // it reachable by adding use edges. So, we will NOT count Con nodes | |
1207 // as dead to be conservative about the dead node count at any | |
1208 // given time. | |
1202 } | 1209 } |
1203 | 1210 |
1204 // Aggressively kill globally dead uses | 1211 // Aggressively kill globally dead uses |
1205 // (Rather than pushing all the outs at once, we push one at a time, | 1212 // (Rather than pushing all the outs at once, we push one at a time, |
1206 // plus the parent to resume later, because of the indefinite number | 1213 // plus the parent to resume later, because of the indefinite number |