On Tue, 2 Dec 2025 20:18:19 GMT, Vladimir Ivanov <[email protected]> wrote:
>> Chen Liang has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Tweak VH usage in some classes > > src/java.base/share/classes/java/lang/invoke/VarHandle.java line 2042: > >> 2040: // This is still a hot path if vh is not constant - in >> this case, >> 2041: // asType is the bottleneck for constant folding, >> unfortunately >> 2042: var result = >> vh.getMethodHandle(mode).asType(symbolicMethodTypeInvoker); > > `mode` and `symbolicMethodTypeInvoker` are part of `AccessDescriptor` while > `vh` comes as an argument. What guarantees that a cached adapter is > compatible with `vh` observed during subsequent calls? It means that `vh` > shape stays exactly the same shape. Is it correct? Would be good to have it > validated with asserts. I am assuming that the previous `vh` observed is compatible with future ones if compiler can fold the `vh` into a constant. If it is not, we can drop the updates to the cache field in the C2 compiled slow code. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/28585#discussion_r2582922472
