Skip to content
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

Merged
merged 1 commit into from
Sep 13, 2018

Conversation

gacholio
Copy link
Contributor

@gacholio gacholio commented Sep 7, 2018

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

*/
if (VM_VMHelpers::classRequiresInitialization(currentThread, fieldClass)) {
vm->internalVMFunctions->initializeClass(currentThread, fieldClass);
if (VM_VMHelpers::exceptionPending(currentThread)) {
Copy link
Member

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?

Copy link
Contributor Author

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).

@gacholio
Copy link
Contributor Author

gacholio commented Sep 7, 2018

Added async check and made the jitEIP parameter implicit for the direct helpers.

@gacholio gacholio force-pushed the helpers branch 2 times, most recently from 86cf119 to 21832a1 Compare September 7, 2018 18:14
@gacholio
Copy link
Contributor Author

gacholio commented Sep 7, 2018

Ready for review.

@AdamBrousseau
Copy link
Contributor

Jenkins line endings check

Copy link
Member

@DanHeidinga DanHeidinga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@DanHeidinga
Copy link
Member

I don't see the implementation of the new helpers after the conflict was resolved - ie: jitResolveStaticFieldDirect

Something go wrong?

@gacholio
Copy link
Contributor Author

Eclipse should rename "merge tool" to "deletion tool" - restored from local history (including the merged conflicting change).

@DanHeidinga DanHeidinga self-assigned this Sep 13, 2018
@DanHeidinga
Copy link
Member

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>
@gacholio
Copy link
Contributor Author

Merge compile error fixed.

@gacholio
Copy link
Contributor Author

Jenkins test sanity plinux,xlinuxlargeheap,zlinux,aix jdk8

@DanHeidinga DanHeidinga merged commit e86d665 into eclipse-openj9:master Sep 13, 2018
@gacholio gacholio deleted the helpers branch September 13, 2018 18:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants