-
Notifications
You must be signed in to change notification settings - Fork 767
Fold calls to Invokers.checkVarHandleGenericType into its result #21998
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
e5a3d9c
to
b9542a8
Compare
@jdmpapin I'd appreciate your review of this. @vijaysun-omr FYI, this will improve performance in VarHandle and MemorySegment-heavy workloads. |
b9542a8
to
c14dd0f
Compare
c14dd0f
to
23b1508
Compare
@jdmpapin I have addressed your review comments. Requesting another review. |
23b1508
to
440fa51
Compare
440fa51
to
099bd46
Compare
|
Jenkins test sanity all jdk17,jdk21 |
Jenkins test sanity.openjdk zlinux jdk21 |
Jenkins test sanity xlinuxjit,plinuxjit,zlinuxjit jdk17,jdk21 |
The value is used to access MethodHandles in a VarHandle's MethodHandle table. This capability was separated out of getMethodHandleTableEntryIndex as it is required outside of that function to generate trees to load from the MethodHandle table. Also implemented JITServer support. Signed-off-by: Nazim Bhuiyan <[email protected]>
When the VarHandle object and the AccessDescriptor objects are known, we can perform a compile-time lookup of the corresponding entry in the VarHandle's MethodHandle table. This commit enables such a transformation through the following: * Add recognized fields from which the MethodHandle table gets loaded, accounting for the differences different JDK versions * Add checkVarHandleGenericType to the list of non-inlinable methods * Add new function in MethodHandleTransformer to be triggered when visiting checkVarHandleGenericType call node that generates the trees and transforms the call node. Signed-off-by: Nazim Bhuiyan <[email protected]>
099bd46
to
a27d80d
Compare
@jdmpapin The merge conflict is now resolved. |
Running some minimal additional testing since the previous checks were done a month ago Jenkins test sanity xlinux jdk17 |
When the VarHandle object and the AccessDescriptor objects are known, we can perform a compile-time lookup of the corresponding entry in the VarHandle's MethodHandle table. This commit enables such a
transformation through the following:
Furthermore, visitStoreToLocalVariable can now be triggered for cases of direct stores of nodes anchored by PassThrough nodes, which would result from calls that have been transformed into PassThrough. PassThrough nodes do not have type info, and therefore this has to be accounted for. Once inside visitStoreToLocalVariable, it would have to recognize cases of stores of child nodes of PassThrough, and set the actual node to use as the RHS of the store.