< prev index next >

src/share/vm/opto/macro.cpp

Print this page
rev 12569 : 8173147: [ctw] fails during compilation of sun.security.krb5.internal.crypto.RsaMd5DesCksumType::calculateKeyedChecksum with " graph should be schedulable"
Summary: Loads generated at uncommon trap from eliminated arraycopy have incorrect memory state
Reviewed-by: thartmann
rev 12700 : 8176506: C2: loop unswitching and unsafe accesses cause crash
Reviewed-by:

*** 2660,2670 **** break; default: assert(n->Opcode() == Op_LoopLimit || n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2 || ! n->Opcode() == Op_Opaque3, "unknown node type in macro list"); } assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count"); progress = progress || success; } } --- 2660,2671 ---- break; default: assert(n->Opcode() == Op_LoopLimit || n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2 || ! n->Opcode() == Op_Opaque3 || ! n->Opcode() == Op_Opaque4, "unknown node type in macro list"); } assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count"); progress = progress || success; } }
*** 2725,2734 **** --- 2726,2738 ---- repl = (cmp->in(1) == n) ? cmp->in(2) : cmp->in(1); } _igvn.replace_node(n, repl); success = true; #endif + } else if (n->Opcode() == Op_Opaque4) { + _igvn.replace_node(n, n->in(2)); + success = true; } assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count"); progress = progress || success; } }
< prev index next >