8136818: Test compiler/arraycopy/TestEliminatedArrayCopyDeopt.java fails with "m1 failed"
Summary: Added missing Op_StoreB check to ArrayCopyNode::may_modify_helper().
Reviewed-by: kvn
--- a/hotspot/src/share/vm/opto/arraycopynode.cpp Thu Aug 04 08:58:22 2016 +0200
+++ b/hotspot/src/share/vm/opto/arraycopynode.cpp Thu Aug 04 10:34:34 2016 +0200
@@ -630,6 +630,12 @@
}
bool ArrayCopyNode::may_modify_helper(const TypeOopPtr *t_oop, Node* n, PhaseTransform *phase, ArrayCopyNode*& ac) {
+ if (n->Opcode() == Op_StoreCM ||
+ n->Opcode() == Op_StoreB) {
+ // Ignore card mark stores
+ n = n->in(MemNode::Memory);
+ }
+
if (n->is_Proj()) {
n = n->in(0);
if (n->is_Call() && n->as_Call()->may_modify(t_oop, phase)) {
@@ -657,9 +663,6 @@
}
}
}
- } else if (n->Opcode() == Op_StoreCM) {
- // Ignore card mark stores
- return may_modify_helper(t_oop, n->in(MemNode::Memory), phase, ac);
}
}
--- a/hotspot/test/compiler/arraycopy/TestEliminatedArrayCopyDeopt.java Thu Aug 04 08:58:22 2016 +0200
+++ b/hotspot/test/compiler/arraycopy/TestEliminatedArrayCopyDeopt.java Thu Aug 04 10:34:34 2016 +0200
@@ -25,7 +25,6 @@
* @test
* @bug 8130847 8156760
* @summary Eliminated instance/array written to by an array copy variant must be correctly initialized when reallocated at a deopt
- * @ignore 8136818
* @run main/othervm -XX:-BackgroundCompilation -XX:-UseOnStackReplacement
* compiler.arraycopy.TestEliminatedArrayCopyDeopt
* @run main/othervm -XX:-BackgroundCompilation -XX:-UseOnStackReplacement