8225509: clean_catch_blocks must add preds first
Reviewed-by: kvn
This commit is contained in:
parent
6a7c8b3e01
commit
d216c34a43
@ -1356,6 +1356,14 @@ void ZBarrierSetC2::clean_catch_blocks(PhaseIdealLoop* phase) const {
|
||||
while(nodeStack.length() > 0) {
|
||||
Node *n = nodeStack.pop();
|
||||
|
||||
for (uint i = 0; i < n->len(); i++) {
|
||||
if (n->in(i)) {
|
||||
if (!visited.test_set(n->in(i)->_idx)) {
|
||||
nodeStack.push(n->in(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool is_old_node = (n->_idx < new_ids); // don't process nodes that were created during cleanup
|
||||
if (n->is_Load() && is_old_node) {
|
||||
LoadNode* load = n->isa_Load();
|
||||
@ -1364,14 +1372,6 @@ void ZBarrierSetC2::clean_catch_blocks(PhaseIdealLoop* phase) const {
|
||||
process_catch_cleanup_candidate(phase, load);
|
||||
}
|
||||
}
|
||||
|
||||
for (uint i = 0; i < n->len(); i++) {
|
||||
if (n->in(i)) {
|
||||
if (!visited.test_set(n->in(i)->_idx)) {
|
||||
nodeStack.push(n->in(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
C->print_method(PHASE_CALL_CATCH_CLEANUP, 2);
|
||||
|
Loading…
Reference in New Issue
Block a user