-
Notifications
You must be signed in to change notification settings - Fork 778
Add support for jitDispatchJ9Method for MH on P #22938
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
base: master
Are you sure you want to change the base?
Add support for jitDispatchJ9Method for MH on P #22938
Conversation
cd724c9 to
d6662b9
Compare
|
@zl-wang can I get a review on this please? This is what we discussed with @IBMJimmyk last week |
|
will do, after i return from vacation next Wed. |
|
High-level comments:
I will review the details when i get around. |
|
still somewhat at a high level: I don't see why you cannot add this case there. i supposed you either didn't notice their existence or saw some advantages of creating new file for it. |
| } | ||
|
|
||
| if (linkageProperties.getRightToLeft()) | ||
| bool rightToLeft = linkageProperties.getRightToLeft() && !isJitDispatchJ9Method; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it is just happening to be right in getting rightToLeft from this symbol's linkage properties. this symbol is a helper symbol, but what you are doing is actually for a java method dispatch. in reality, helpers are right to left; java method dispatch is left to right (always). in current implementation, helper linkage happens to be an extension to the private linkage. things are set up wrong there, but it happens to be correct for this case (helper dispatch just assumed right to left).
a profuse comment here should be useful for any future readers.
Enables transformation of invokeBasic, linkToStatic, and linkToSpecial
calls into jitDispatchJ9Method acall nodes. Codegen recognizes this node
in private linakge and produces code to directly call the MethodHandle
target at runtime
- using a new PPCJ9HelperCall snippet when the target is interpreted
- otherwise branch and link to jit start pc of target
Signed-off-by: Matthew Hall <matthew.hall3@outlook.com>
d6662b9 to
6756fef
Compare
Enables transformation of invokeBasic, linkToStatic, and linkToSpecial calls into jitDispatchJ9Method acall nodes. Codegen recognizes this node in private linakge and produces code to directly call the MethodHandle target at runtime
- using a new PPCJ9HelperCall snippet when the target is interpreted
- otherwise branch and link to jit start pc of target