diff options
author | kvn <none@none> | 2008-06-20 11:10:05 -0700 |
---|---|---|
committer | kvn <none@none> | 2008-06-20 11:10:05 -0700 |
commit | 12e59e916ec5f47c9fb34e7ea1afe3aac1b9b253 (patch) | |
tree | 43137b1f40cb9b3c2a96bbc153afa99aaf26712e /src/share/vm/opto/macro.cpp | |
parent | 172640c9f78c53c3817f4c9bf246d73cb925b7d2 (diff) | |
download | jdk8u_hotspot-12e59e916ec5f47c9fb34e7ea1afe3aac1b9b253.tar.gz |
6715633: when matching a memory node the adr_type should not change
Summary: verify the adr_type of a mach node was not changed
Reviewed-by: rasbold, never
Diffstat (limited to 'src/share/vm/opto/macro.cpp')
-rw-r--r-- | src/share/vm/opto/macro.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/share/vm/opto/macro.cpp b/src/share/vm/opto/macro.cpp index 7ac6b320e..fde6b01a4 100644 --- a/src/share/vm/opto/macro.cpp +++ b/src/share/vm/opto/macro.cpp @@ -1674,7 +1674,14 @@ bool PhaseMacroExpand::expand_macro_nodes() { success = eliminate_locking_node(n->as_AbstractLock()); break; default: - assert(false, "unknown node type in macro list"); + if (n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2) { + _igvn.add_users_to_worklist(n); + _igvn.hash_delete(n); + _igvn.subsume_node(n, n->in(1)); + success = true; + } else { + assert(false, "unknown node type in macro list"); + } } assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count"); progress = progress || success; |