--- a/hotspot/src/share/vm/opto/escape.cpp Thu Jan 15 11:30:13 2015 +0100
+++ b/hotspot/src/share/vm/opto/escape.cpp Mon Jan 19 09:32:40 2015 +0100
@@ -2010,14 +2010,9 @@
bt = field->layout_type();
} else {
// Check for unsafe oop field access
- for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) {
- int opcode = n->fast_out(i)->Opcode();
- if (opcode == Op_StoreP || opcode == Op_LoadP ||
- opcode == Op_StoreN || opcode == Op_LoadN) {
- bt = T_OBJECT;
- (*unsafe) = true;
- break;
- }
+ if (n->has_out_with(Op_StoreP, Op_LoadP, Op_StoreN, Op_LoadN)) {
+ bt = T_OBJECT;
+ (*unsafe) = true;
}
}
} else if (adr_type->isa_aryptr()) {
@@ -2031,13 +2026,8 @@
}
} else if (adr_type->isa_rawptr() || adr_type->isa_klassptr()) {
// Allocation initialization, ThreadLocal field access, unsafe access
- for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) {
- int opcode = n->fast_out(i)->Opcode();
- if (opcode == Op_StoreP || opcode == Op_LoadP ||
- opcode == Op_StoreN || opcode == Op_LoadN) {
- bt = T_OBJECT;
- break;
- }
+ if (n->has_out_with(Op_StoreP, Op_LoadP, Op_StoreN, Op_LoadN)) {
+ bt = T_OBJECT;
}
}
}
@@ -3092,13 +3082,7 @@
continue;
} else if (n->Opcode() == Op_EncodeISOArray) {
// get the memory projection
- for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) {
- Node *use = n->fast_out(i);
- if (use->Opcode() == Op_SCMemProj) {
- n = use;
- break;
- }
- }
+ n = n->find_out_with(Op_SCMemProj);
assert(n->Opcode() == Op_SCMemProj, "memory projection required");
} else {
assert(n->is_Mem(), "memory node required.");
@@ -3122,13 +3106,7 @@
continue; // don't push users
} else if (n->is_LoadStore()) {
// get the memory projection
- for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) {
- Node *use = n->fast_out(i);
- if (use->Opcode() == Op_SCMemProj) {
- n = use;
- break;
- }
- }
+ n = n->find_out_with(Op_SCMemProj);
assert(n->Opcode() == Op_SCMemProj, "memory projection required");
}
}