Skip to content

Evaluate destination subtrees early when deferring destination eval #21195

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

Merged
merged 1 commit into from
Mar 20, 2025

Conversation

rmnattas
Copy link
Contributor

In x86 ArrayStoreCHK, with OffHeap the destination tree evaluation is deferred but its subtrees still need to be evaluated early especially if subtrees are complex and might introduce more instructions and virtual-registers.

WIP: Testing

@rmnattas
Copy link
Contributor Author

@zl-wang @0xdaryl

@rmnattas rmnattas changed the title WIP: Evaluate destination subtrees early when deferring destination eval Evaluate destination subtrees early when deferring destination eval Feb 26, 2025
@rmnattas rmnattas marked this pull request as ready for review February 26, 2025 19:46
@rmnattas
Copy link
Contributor Author

Ready for merge

@zl-wang
Copy link
Contributor

zl-wang commented Feb 26, 2025

Jenkins test sanity xlinux jdk8,jdk23

@zl-wang
Copy link
Contributor

zl-wang commented Feb 26, 2025

@rmnattas you might need to take a look at the failures.

@rmnattas
Copy link
Contributor Author

rmnattas commented Feb 27, 2025

testJITServer_2 #19084 (dup of #14594)

jdk_security4_0 jdk_security4_1, connection issue @AdamBrousseau?, machine looks online now https://openj9-jenkins.osuosl.org/computer/ubu24%2Dx86%2D1/

[2025-02-26T22:17:49.267Z] STDERR:
[2025-02-26T22:17:49.267Z] java.net.UnknownHostException: ubu24-x86-1: ubu24-x86-1: Name or service not known
[2025-02-26T22:17:49.267Z] 	at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1941)
[2025-02-26T22:17:49.267Z] 	at NoAddresses.main(NoAddresses.java:51)
[2025-02-26T22:17:49.267Z] 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
...
[2025-02-26T22:17:49.267Z] Caused by: java.net.UnknownHostException: ubu24-x86-1: Name or service not known
[2025-02-26T22:17:49.267Z] 	at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
[2025-02-26T22:17:49.267Z] 	at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:52)

@AdamBrousseau
Copy link
Contributor

@rmnattas please open an infra issue for that. Could be a config problem related to hostname.

In x86 ArrayStoreCHK, with OffHeap the destination tree evaluation is
deferred but its subtrees still need to be evaluated early especially if
subtrees are complex and might introduce more instructions and
virtual-registers.
@zl-wang
Copy link
Contributor

zl-wang commented Mar 8, 2025

Not sure what range would that be, if for example offset <= (MAX_INT32 << MAX_SHIFT) is the appropriate check for that?

in x86-64 addressing modes, the scale value can be 1,2,4,or8 (i.e. index not shifted or 1/2/3 left shifted ... naturally aligned with the typical array element access as well). the index is expected to be in a register as usual (otherwise, it should be constant-folded already) ... that component is represented in our IL as lshl.

@rmnattas
Copy link
Contributor Author

PR ready for merge. Extra condition and assert is sufficient to catch unexpected cases and after discussions trying to tailor for the different addressing modes would be too complex given that 1) this is for off-heap only and 2) its a temporary fix until commoning dataAddr is enabled.

@zl-wang
Copy link
Contributor

zl-wang commented Mar 20, 2025

Jenkins test sanity xlinux jdk8,jdk21

@zl-wang zl-wang merged commit dea4d16 into eclipse-openj9:master Mar 20, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants