-
Enhancement
-
Resolution: Unresolved
-
P4
-
25
Now MergeStores optimization only support stored value in sequential order, not support value in reverse order. For example, in little endian machine, code piece like below can not be merged
public void patchInt(int offset, int x) {
byte[] elems = this.elems;
elems[offset ] = (byte) (x >> 24);
elems[offset + 1] = (byte) (x >> 16);
elems[offset + 2] = (byte) (x >> 8);
elems[offset + 3] = (byte) x;
}
This pattern may appeared in access data between big-endian and little-endian.
public void patchInt(int offset, int x) {
byte[] elems = this.elems;
elems[offset ] = (byte) (x >> 24);
elems[offset + 1] = (byte) (x >> 16);
elems[offset + 2] = (byte) (x >> 8);
elems[offset + 3] = (byte) x;
}
This pattern may appeared in access data between big-endian and little-endian.
- relates to
-
JDK-8318446 C2: optimize stores into primitive arrays by combining values into larger store
- Resolved
- links to
-
Review(master) openjdk/jdk/23030