Skip to content

Conversation

@Akira1Saitoh
Copy link
Contributor

populateMemoryReference function skips l2a node if the node's reference
count is 1 and node does not have a register.
Skipping it makes the base register of the memory reference
a non-collected reference register. This is incorrect but harmless in normal
cases. However, if the memory reference has a UnresolvedDataSnippet,
the first generated instruction would be a branch to the snippet. The resolution
helper is called fron the snippet, which may trigger GC. Because GC does not
know about the base register, the value of the base register would not be
updated correctly.
This commit changes populateMemoryReference to evaluate l2a node if
the memory reference has a UnresolvedDataSnippet.

Signed-off-by: Akira Saitoh saiaki@jp.ibm.com

…taSnippet

`populateMemoryReference` function skips `l2a` node if the node's reference
count is 1 and node does not have a register.
Skipping it makes the base register of the memory reference
a non-collected reference register. This is incorrect but harmless in normal
cases. However, if the memory reference has a UnresolvedDataSnippet,
the first generated instruction would be a branch to the snippet. The resolution
helper is called fron the snippet, which may trigger GC. Because GC does not
know about the base register, the value of the base register would not be
updated correctly.
This commit changes `populateMemoryReference` to evaluate `l2a` node if
the memory reference has a UnresolvedDataSnippet.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
@Akira1Saitoh
Copy link
Contributor Author

This is the fix for eclipse-openj9/openj9#14663.

@knn-k
Copy link
Contributor

knn-k commented Apr 1, 2022

Jenkins build aarch64

@knn-k
Copy link
Contributor

knn-k commented Apr 1, 2022

I ran sanity.functional with JDK 17 and 18 on AArch64 Linux, and they were successful.
(Internal job/Test_openjdk17_j9_sanity.functional_aarch64_linux_Personal/120/ and job/Test_openjdk18_j9_sanity.functional_aarch64_linux_Personal/21/)

@knn-k knn-k self-assigned this Apr 4, 2022
@knn-k knn-k merged commit e2efc9f into eclipse-omr:master Apr 4, 2022
@Akira1Saitoh Akira1Saitoh deleted the aarch64RegMapForUnresolved branch April 12, 2022 00:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants