-
Notifications
You must be signed in to change notification settings - Fork 738
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
Implement direct-call field resolve helpers #2795
Conversation
runtime/codert_vm/cnathelp.cpp
Outdated
*/ | ||
if (VM_VMHelpers::classRequiresInitialization(currentThread, fieldClass)) { | ||
vm->internalVMFunctions->initializeClass(currentThread, fieldClass); | ||
if (VM_VMHelpers::exceptionPending(currentThread)) { |
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.
Does this need to check for immediate async as well?
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.
Yes, I suppose it should (the resolve teardown checks it).
Added async check and made the jitEIP parameter implicit for the direct helpers. |
86cf119
to
21832a1
Compare
Ready for review. |
Jenkins line endings check |
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.
lgtm
I don't see the implementation of the new helpers after the conflict was resolved - ie: jitResolveStaticFieldDirect Something go wrong? |
Eclipse should rename "merge tool" to "deletion tool" - restored from local history (including the merged conflicting change). |
Jenkins test sanity plinux,xlinuxlargeheap,zlinux,aix jdk8 |
The unresolved path in the new inline field watch compilations needs to call field resolve helpers directly from the code cache. Add direct versions of the 4 helpers, with the same first 2 arguments and return value (the 3rd argument is omitted as it can be inferred from the return address like other runtime helpers). jitResolveFieldDirect jitResolveFieldSetterDirect jitResolveStaticFieldDirect jitResolveStaticFieldSetterDirect Also modified the static field reporting helpers to block if another thread is initializing the field class. [ci skip] Signed-off-by: Graham Chapman <graham_chapman@ca.ibm.com>
Merge compile error fixed. |
Jenkins test sanity plinux,xlinuxlargeheap,zlinux,aix jdk8 |
The unresolved path in the new inline field watch compilations needs to
call field resolve helpers directly from the code cache. Add direct
versions of the 4 helpers, with the same first 2 arguments and return
value (the 3rd argument is omitted as it can be inferred from the return
address like other runtime helpers).
jitResolveFieldDirect
jitResolveFieldSetterDirect
jitResolveStaticFieldDirect
jitResolveStaticFieldSetterDirect
Also modified the static field reporting helpers to block if another
thread is initializing the field class.
[ci skip]
Signed-off-by: Graham Chapman graham_chapman@ca.ibm.com