equal
deleted
inserted
replaced
35 #include "opto/machnode.hpp" |
35 #include "opto/machnode.hpp" |
36 #include "opto/matcher.hpp" |
36 #include "opto/matcher.hpp" |
37 #include "opto/node.hpp" |
37 #include "opto/node.hpp" |
38 #include "opto/opcodes.hpp" |
38 #include "opto/opcodes.hpp" |
39 #include "opto/regmask.hpp" |
39 #include "opto/regmask.hpp" |
|
40 #include "opto/rootnode.hpp" |
40 #include "opto/type.hpp" |
41 #include "opto/type.hpp" |
41 #include "utilities/copy.hpp" |
42 #include "utilities/copy.hpp" |
42 #include "utilities/macros.hpp" |
43 #include "utilities/macros.hpp" |
43 |
44 |
44 class RegMask; |
45 class RegMask; |
1308 nstack.push(dead); |
1309 nstack.push(dead); |
1309 bool has_irreducible_loop = igvn->C->has_irreducible_loop(); |
1310 bool has_irreducible_loop = igvn->C->has_irreducible_loop(); |
1310 |
1311 |
1311 while (nstack.size() > 0) { |
1312 while (nstack.size() > 0) { |
1312 dead = nstack.pop(); |
1313 dead = nstack.pop(); |
|
1314 if (dead->Opcode() == Op_SafePoint) { |
|
1315 dead->as_SafePoint()->disconnect_from_root(igvn); |
|
1316 } |
1313 if (dead->outcnt() > 0) { |
1317 if (dead->outcnt() > 0) { |
1314 // Keep dead node on stack until all uses are processed. |
1318 // Keep dead node on stack until all uses are processed. |
1315 nstack.push(dead); |
1319 nstack.push(dead); |
1316 // For all Users of the Dead... ;-) |
1320 // For all Users of the Dead... ;-) |
1317 for (DUIterator_Last kmin, k = dead->last_outs(kmin); k >= kmin; ) { |
1321 for (DUIterator_Last kmin, k = dead->last_outs(kmin); k >= kmin; ) { |