Skip to content

Commit

Permalink
[GR-16600] PEA incorrectly removes unsafe stores.
Browse files Browse the repository at this point in the history
PullRequest: graal/3861
  • Loading branch information
mukel committed Jun 25, 2019
2 parents f567eea + f6b0544 commit cd4385f
Showing 1 changed file with 5 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,11 @@ private boolean processUnsafeStore(RawStoreNode store, PEReadEliminationBlockSta
long offset = store.offset().asJavaConstant().asLong();
boolean overflowAccess = isOverflowAccess(accessKind, componentKind);
int index = overflowAccess ? -1 : VirtualArrayNode.entryIndexForOffset(tool.getMetaAccess(), offset, accessKind, type.getComponentType(), Integer.MAX_VALUE);
return processStore(store, store.object(), location, index, accessKind, overflowAccess, store.value(), state, effects);
if (index != -1) {
return processStore(store, store.object(), location, index, accessKind, overflowAccess, store.value(), state, effects);
} else {
state.killReadCache(location, index);
}
} else {
processIdentity(state, location);
}
Expand Down

0 comments on commit cd4385f

Please sign in to comment.