-
Notifications
You must be signed in to change notification settings - Fork 733
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
TransformIndirectLoadChain at JITServer #20767
TransformIndirectLoadChain at JITServer #20767
Conversation
ed4300a
to
8eef209
Compare
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.
Is it possible to do some refactoring to avoid code duplication? The risk is that any fixes to dereferenceStructPointerChain()
or verifyFieldAccess()
are not going to be ported to transformIndirectLoadChainServerImpl
It is possible, the main challenge is that the non-server implementation assumes VM access throughout the code, so we need to do some major re-writing. |
How about moving all the JITServer changes down into
This one, on failure it returns NULL, much like the original dereferenceStructPointerChain. On success it returns a pointer to where the data is going to be found.
and it calls |
8eef209
to
e4c608a
Compare
I have yet to implement the union, but I just want to make sure the overall structure of the code is correct. |
e4c608a
to
eeebb5d
Compare
I have yet to organise the commits. Vector API now works for both server and non-server mode. I also had to bypass |
eeebb5d
to
c7311bc
Compare
ea629a8
to
8da6728
Compare
c39d9a2
to
62b720a
Compare
62b720a
to
176c759
Compare
isArrayWithConstantElements(symRef, comp)); | ||
} | ||
|
||
if (knotIndex != TR::KnownObjectTable::UNKNOWN) |
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.
The original code has a test on value
being non-null. Is this test equivalent?
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, it should be
176c759
to
0ce7d9c
Compare
0ce7d9c
to
150fa69
Compare
With |
I am thinking that we can delete OMR::KnownObjectTable::updateKnownObjectTableAtServer(Index index, uintptr_t *objectReferenceLocation) from OMR since it's only used in OpenJ9 |
jenkins compile xlinux jdk21 |
jenkins compile all jdk8,jdk21 |
150fa69
to
ee700f1
Compare
jenkins test sanity all jdk23 |
|
I started a 10x grinder on x86 with targets that failed: https://openj9-jenkins.osuosl.org/job/Grinder/4042/ |
ee700f1
to
3a7a696
Compare
jenkins test sanity all jdk23 |
mac fails cmdLineTester_jython_0
zlinux fails jdk_lang_j9_0 and that is a crash in compiler
I am concerned about this one |
Implement TransformIndirectLoadChain partially for the JITServer so it can employ the Vector API during optimization. Signed-off-by: Luke Li <[email protected]>
3a7a696
to
3a96621
Compare
jenkins test sanity all jdk23 |
1 similar comment
jenkins test sanity all jdk23 |
The aarch64 failure can be reproduced by the nightly build. https://hyc-runtimes-jenkins.swg-devops.com/job/Grinder/46011/console More testing required for the Power failure. |
on plinux we have one failure: cmdLineTester_criu_jitserverAcrossCheckpoint_0
|
I started a 50x grinder with failed test targets here: https://openj9-jenkins.osuosl.org/job/Grinder/4050/ |
jenkins test sanity xlinuxjit,plinuxjit,zlinuxjit,alinux64jit jdk21 |
The vector tests are failing because they are checking for the |
plinuxjit failed jdk_lang_0 because of a timeout
plinuxjit sanity has failed cmdLineTester_criu_jitserverAcrossCheckpoint_0 with a fatal assert. This is something we used to see from time to time on zLinux, but it crops up on plinux as well.
|
My 50x grinder on plinux has passed. The failures that appeared in testing are known (except for the JFR on aarch64 which is a new test), hence this PR can be merged. |
Implement TransformIndirectLoadChain partially for the JITServer so it can employ the Vector API during optimization.