On Tue, 2 Dec 2025 01:48:13 GMT, Vladimir Ivanov <[email protected]> wrote:

>> The performance is measured by the existing 
>> `org.openjdk.bench.java.lang.invoke.VarHandleExact` benchmark, which 
>> originally expects  `generic_genericInvocation` to be much slower. Now it 
>> instead has a performance on par with the exact invocations.
>> 
>> The constant folding ability is verified with the new 
>> `VarHandleMismatchedTypeFold` IR test.
>
> If I understand the IR test logic correctly, C2 was able to compile `(void) 
> B.getAndAdd(b2)` call down to the desired instruction sequence. Is it still 
> the case after the fix? What happens if you keep `TestGetAndAdd.java
> ` intact?

No. The old code worked because it implicitly depended on the backdoor path 
present in the now removed `GUARD_METHOD_TEMPLATE_V` in 
`VarHandleGuardMethodGenerator`. If this test is intact, now its IR compiles to 
doing something in adaptedMethodHandle and calling a MethodHandle.  Not sure 
why it doesn't inline through that MethodHandle.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/28585#discussion_r2579310315

Reply via email to