diff src/share/vm/opto/escape.cpp @ 23431:3f47111161d7

8134031: Incorrect JIT compilation of complex code with inlining and escape analysis Summary: Bad rewiring of memory edges when we split unique types during EA Reviewed-by: kvn
author roland
date Mon, 31 Aug 2015 17:20:08 +0200
parents 6e8e0bf87bbe
children b5f3a471e646 daaf806995b3
line wrap: on
line diff
--- a/src/share/vm/opto/escape.cpp	Thu Oct 08 09:38:24 2015 +0200
+++ b/src/share/vm/opto/escape.cpp	Mon Aug 31 17:20:08 2015 +0200
@@ -3183,7 +3183,7 @@
     // Note 2: MergeMem may already contains instance memory slices added
     // during find_inst_mem() call when memory nodes were processed above.
     igvn->hash_delete(nmm);
-    uint nslices = nmm->req();
+    uint nslices = MIN2(nmm->req(), new_index_start);
     for (uint i = Compile::AliasIdxRaw+1; i < nslices; i++) {
       Node* mem = nmm->in(i);
       Node* cur = NULL;