Mercurial > hg > graal-jvmci-8
comparison 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 |
comparison
equal
deleted
inserted
replaced
23428:be740540f60c | 23431:3f47111161d7 |
---|---|
3181 // Note: we don't want to use MergeMemStream here because we only want to | 3181 // Note: we don't want to use MergeMemStream here because we only want to |
3182 // scan inputs which exist at the start, not ones we add during processing. | 3182 // scan inputs which exist at the start, not ones we add during processing. |
3183 // Note 2: MergeMem may already contains instance memory slices added | 3183 // Note 2: MergeMem may already contains instance memory slices added |
3184 // during find_inst_mem() call when memory nodes were processed above. | 3184 // during find_inst_mem() call when memory nodes were processed above. |
3185 igvn->hash_delete(nmm); | 3185 igvn->hash_delete(nmm); |
3186 uint nslices = nmm->req(); | 3186 uint nslices = MIN2(nmm->req(), new_index_start); |
3187 for (uint i = Compile::AliasIdxRaw+1; i < nslices; i++) { | 3187 for (uint i = Compile::AliasIdxRaw+1; i < nslices; i++) { |
3188 Node* mem = nmm->in(i); | 3188 Node* mem = nmm->in(i); |
3189 Node* cur = NULL; | 3189 Node* cur = NULL; |
3190 if (mem == NULL || mem->is_top()) | 3190 if (mem == NULL || mem->is_top()) |
3191 continue; | 3191 continue; |